Kivy

기본적인 구조

1. 버전 정보 (없어도 됨)

지정된 버전으로 실행하여 업데이트에 의한 영향을 배제합니다.

import kivy
kivy.require('1.9.1')

 

2. App과 Widget 불러오기

from kivy.app import App
from kivy.uix.button import Button

App은 실행될 앱, Widget은 앱에 들어갈 부품들입니다. 이외에도 다양한 기능들을 불러올 수 있습니다. 예를 들어 kivy.clock에서 Clock을 불러오면 시간과 관련된 기능을 사용할 수 있습니다.

 

3. App 클래스 만들기

App을 상속해서 자신만의 앱을 만듭니다.

class MyApp(App):
    def build(self):
        return Button(text="Hello World!")

[앱 이름]App 이라는 class를 만듭니다. 여기에 build라는 메소드를 추가합니다. 앱이 실행되면 build에 리턴된 위젯이 보여집니다. 이것을 root 위젯이라고 합니다.

여기에서는 Button이 root 위젯입니다. Button을 생성할 때 text를 지정해줬습니다. 이렇게 위젯마다 속성이 있는데 이것을 Properties라고 합니다. Kivy 문서를 찾아보면 이러한 API를 찾아볼 수 있습니다.

https://kivy.org/docs/api-kivy.uix.button.html?highlight=button#

그런데 Button 항목에서 text라는 API를 찾을 수 없습니다. 왜냐하면 Button은 클릭할 수 있는 Label로서 만들어져서 Label의 API를 공유하기 때문입니다. Label 항목을 보면 text 라는 API가 있습니다.
https://kivy.org/docs/api-kivy.uix.label.html#kivy.uix.label.Label

 

4. 앱 실행하기

if __name__ == '__main__':
    MyApp().run()

run() 메소드를 사용하면 앱이 실행됩니다.

if __name__ == '__main__': 를 쓰면 다른 앱에서 이 앱을 불러올 때 실행되지 않고 메소드만 가져와서 사용할 수 있게 됩니다. 그럴 일이 없다면 굳이 쓸 필요는 없습니다만 사람들이 많이 씁니다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
Wander
현재 버전
선택 버전
graphittie 자세히 보기