본문 바로가기

코딩/파이썬 kivy

(19)
kivy 스터디 018. Widget - GridLayout Widget - GridLayout GridLayout 위젯은 출력 창에 그려지는 Children 위젯의 크기와 위치를 제어할 수 있는 위젯으로 Layout에 속한다. GridLayout 위젯은 GridLayout 위젯에 속하는 Children 위젯을 격자형으로 배치하고자 할 때 사용할 수 있다. 아래의 은 7개의 Button 위젯을 3열의 GridLayout 위젯에 배치하는 예이다. 열의 개수는 GridLayout 위젯의 cols 프라퍼티로 설정한다. import kivy kivy.require('2.0.0') from kivy.app import App from kivy.uix.gridlayout import GridLayout from kivy.uix.button import Button class..
kivy 스터디 017. Widget - BoxLayout Widget - BoxLayout BoxLayout 위젯은 출력 창에 그려지는 Children 위젯의 크기와 위치를 제어할 수 있는 위젯으로 Layout에 속한다. BoxLayout 위젯은 BoxLayout 위젯에 속하는 Children 위젯을 수평 또는 수직으로 배치하고자 할 때 사용할 수 있다. 아래의 은 3개의 Button 위젯을 BoxLayout 위젯에 수평으로 배치하는 예이다. import kivy kivy.require('2.0.0') from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button class MyRootWidget(BoxLayout): def __init__(s..
kivy 스터디 016. Kivy에서의 Widget (위젯) Kivy에서의 Widget (위젯) A Widget is the base building block of GUI interfaces in Kivy. It provides a Canvas that can be used to draw on screen. It receives events and reacts to them. kivy에서 위젯에 대한 정의는 위와 같다. kivy에서 위젯은 트리(tree) 구조로 구성되며, kivy 애플리케이션은 하나의 root 위젯을 갖는다. 그리고 root 위젯은 children 위젯을 가질 수 있다. 위젯의 트리 구조는 다음의 3개 메서드에 의해 구성 및 변경될 수 있다. add_widget() remove_widget() clear_widgets() 아래의 에서 BoxLa..
kivy 스터디 015. Kivy Input Management - on_touch_move() Kivy Input Management - on_touch_move() 마우스 조작과 관련한 on_touch_move 메서드는 마우스 버튼을 누른 상태에서 위치를 이동할 때 호출된다. 하나의 버튼을 가지며 on_touch_move 메서드를 포함하는 코드를 작성한 후 실행한다. import kivy kivy.require('2.0.0') from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button class MyButton(Button): def __init__(self, **kwargs): super(MyButton, self).__init__(**kwargs) def on_touch_..
kivy 스터디 014. Kivy Input Management - on_touch_up() Kivy Input Management - on_touch_up() 아래의 코드는 하나의 버튼을 가지는 윈도우 애플리케이션을 만드는 코드로 마우스 왼쪽 버튼으로 My Button을 클릭하면 개발환경 출력 창에 몇 가지 문구가 출력된다. import kivy kivy.require('2.0.0') from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button class MyButton(Button): def __init__(self, **kwargs): super(MyButton, self).__init__(**kwargs) # def on_touch_down(self, touch): # ..
kivy 스터디 013. Kivy Input Management - on_touch_down() Kivy Input Management - on_touch_down() kivy는 다양한 타입의 입력을 처리한다. mouse touchscreen accelerometer gyroscope etc kivy에서 임의 입력이 처리되는 구조는 아래와 같다. 모든 입력 이벤트는 MotionEvnet 클래스로 다음과 같이 2가지 타입의 이벤트를 발생시킨다. touch events : x와 y의 위치 정보를 가지는 motion에 대한 이벤트로 모든 touch 이벤트는 widget tree에 전달됨 no-touch events : accelerometer와 같은 연속성을 가지는 이벤트로 no-touch 이벤트는 widget tree에 전달되지 않음 motion에 대한 이벤트는 input provider에 의해 생성된..
kivy 스터디 012. kivy 프라퍼티 이벤트 (property event) - ListProperty 이벤트 kivy 프라퍼티 이벤트 (property event) - ListProperty 이벤트 생성한 kivy 프라퍼티에 어떤 변화가 발생했을 때, 이를 이벤트로 원하는 코드가 실행되도록 할 수 있다. kivy에서 사용 가능한 kivy 프라퍼티는 다음과 같다. StringProperty NumericProperty BoundedNumericProperty ObjectProperty DictProperty ListProperty OptionProperty AliasProperty BooleanProperty ReferenceListProperty ListProperty 이벤트 kivy 프라퍼티는 기본적으로 on_ 이벤트를 제공한다. on_ 이벤트는 kivy 프라퍼티의 값이 변경되었을 때 호출된다. 아래 이미지와..
kivy 스터디 011. 위젯 이벤트 (widget events) - Button & on_touch_down 메서드 모든 마우스 클릭, 스크롤 및 화면 접촉 (touch) 이벤트는 MotionEvent에 속하고, 이러한 이벤트들은 위젯을 위한 on_touch_down이나 on_touch_up과 같은 이벤트를 생성한다. 위젯 이벤트 (widget events) - Button & on_touch_down 메서드 위젯은 2가지 타입의 이벤트를 가질 수 있다. 위젯 프라퍼티 이벤트 (property event) 위젯 정의 이벤트 (widget-defined event) Button & on_touch_down 메서드 아래 이미지와 같이 버튼 3개를 가로로 배치하기 위해 BoxLayout 및 Button 클래스를 사용한다. import kivy kivy.require('2.0.0') from kivy.app import Ap..