파이썬[Python]: kivy의 구조(Architecture)

요약: https://kivy.org/doc/stable/guide/architecture.html#architecture

OS: OSX, Linux and Windows
사용언어: 파이썬
그래픽: OpenGL ES

Kivy 구조 (연결)

Core Providers and Input Providers
Core Providers - Kivy와 운영체제간 중재자적 관점에서 통신을 하는 계층입니다.
Input Providers - 특정 입력장치를 추가적으로 지원할 수 있는 코드입니다.


Graphics
Kivy의 그래픽 API는 OpenGL을 추상화한것이지만, OpenGL의 명령어를 사용하실 수 있습니다.


Core
  Clock - 타이머 이벤트일정을 잡을 수 있습니다.(one-shot timers, periodic timers)
  Cache - 캐시를 사용할 수 있습니다.
  Gesture Detection - 움직임을 포착할 수 있는 간단한 도구입니다.
  Kivy Languae - 사용자 인터페이스를 묘사하기에 유용합니다.
  Properties - 파이썬에서 말하는 속성이 아니라, Kivy에서 작성한 클래스로서 위젯코드와 연결합니다.


UIX(Widgets & Layouts) - 유저 인터페이스입니다.
  Widgets - 유저 인터페이스의 요소들입니다.
  Layouts - 위젯들을 배열하고 정리합니다.


Modules - 모듈을 통하여 Kivy 프로그램에 기능들을 부여할 수 있습니다.


Input Events(Touches)
  Down - 터치가 이루어진 순간입니다.
  Move - 터치 후 지속되는 상태입니다.(2D 좌표가 변경되는 것입니다.)
  Up - 터치가 해제되는 순간입니다.(보증할수는 없습니다.)


Widgets and Event Dispatching
Kivy에서 위젯이란, 사용자의 입력 이벤트를 받는 객체입니다. 위젯은 오직 하나의 root 위젯을 가지며, 이 root 위젯은 직접적이거나 혹은 간접적으로 하위 위젯을 가지고 있습니다.
새로운 입력이 들어오면 Kivy는 터치당 하나의 이벤트를 보냅니다. root 위젯은 이 이벤트를 최초로 받게되며 터치의 상황에 따라 on_touch_down, on_touch_move or on_touch_up 이벤트가 root 위젯에 발송되어 집니다.
root 위젯을 포함하여 각 위젯은 이벤트를 처리할지 무시할지를 선택할 수 있으며, 이벤트 핸들러가 True를 반환하면 이벤트를 처리한것을 의미합니다. 그렇지 않다면, 이벤트 핸들러는 이벤트를 하위 위젯들에게 보내게 됩니다.
(위젯의 collide_point() 메서드를 이용하여 화면상에서 터치를 불가하게 할 수 있습니다.)

※ 부족한 이해와 번역상 오류가 있을 수 있으니 양해부탁드립니다.

reference
https://kivy.org/doc/stable/guide/architecture.html#architecture

댓글

이 블로그의 인기 게시물

파이썬[Python]: 내장함수 - from_bytes 메서드

파이썬[Python]: 내장함수 - __len__ 메서드

파이썬[Python]: kivy - 한글 사용

C 언어: sin 함수, cos 함수, tan 함수

파이썬[Python]: 내장함수 - bit_length 메서드