Kivy 시작하기 3 (Kv 언어에 대해서)

사용 버전: Python 3.6.8, Kivy 1.11.1
사용 프로그램: Atom 1.42.0 x64

Kivy에는 디자인을 위한 언어가 따로 존재합니다.
Kv라는 언어인데요.

이번 시간에는 Kv 언어에 대해서 잠깐 보겠습니다.


kv 언어는 '.kv'라는 확장자를 가지고 있습니다.

App을 상속받은 class의 이름을 따라 소문자로 파일을 만들면 자동으로 로드됩니다.
예) class TestApp(App):일 시, test.kv로 작성.

또는 Builder를 사용하여, 직접 로드할 수 있습니다.
Builder.load_file('파일/경로/test.kv')

그리고 Kv 언어는 하나의 root Widget만을 가지고, 일반 Widget은 숫자 상관없이 가질 수 있습니다.




root Widget은 다음과 같이 표기합니다.
Widget:

일반 class는 다음과 같이 표기합니다.
<MyWidget>:

그리고 파이썬의 모듈을 사용하고 싶다면 다음과 같이 사용합니다. import numpy as np
#:import np numpy

하위 Widget들은 들여 쓰기로 구분하고 그냥 단순하게 : 만 붙입니다.
Widget:
childWidget:

<MyWidget>:
MychildWidget:

그리고 Widget의 이름은 대문자로 시작해야 하고, 속성의 이름은 소문자로 시작해야 합니다.
상위 Widget에 id를 부여하면, id로 다른 Widget의 상태에 접근할 수 있습니다. 하지만, 상위 Widget 밖의 Widget에서는 접근할 수 없습니다.

상속을 하려면, @를 사용합니다.
<MyWidget@Button>:

여기까지가 대략적인 설명이고, 실제로 작성해 보겠습니다.

Kivy 시작하기 2에서 사용한 코드를 변형해보겠습니다.



이 코드를 kv 언어를 사용하여 변경하면 다음과 같습니다.
같은 폴더에 파일을 만듭니다.





실행하면 동일한 결괏값을 보여줍니다.




이처럼 kv 언어를 사용하면, 디자인 요소는 kv 파일로 옮길 수 있어, 더욱 깔끔하게 코딩할 수 있습니다.

코드:
https://github.com/shwoghk14/Kivy_for_Starter


앱:
https://play.google.com/store/apps/details?id=starlight.jaehwa.one

끝.



카테고리: BlackSmith, Kivy

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)