Kivy
#kivy Basic concepts Widget ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ์ฒด widget์ ๋ค๋ฅธ widget์ treeํํ๋ก ํฌํจ ๊ฐ๋ฅํ๋ฉฐ ๋ฒํผ, ๋ผ๋ฒจ ๋ฑ์ํธ์์ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด ๋๋ Widget์ ์งํฉ ์์น๋ ์ขํ๋ก ํํ๋๋๋ฐ ์ขํ๋ ์ข์ธกํ๋จ์ด (0,0)์ด๋ค. Layout ํ๋ฉด ๊ตฌ์ฑ์ ์ค์ ํ ์์ widget ํน์ layout์ ํฌํจ ๊ฐ๋ฅํ๋ค. structure main.py์ python์ผ๋ก ๋ด์ฉ์ ์์ฑํ๋ค. class TheLabApp(App): pass TheLabApp().run() main.py์์ ์ ์ธํ class โTheLabAppโ ์์ App์ ๋บ TheLab์ ๋ฐ์ main.py์ ๊ฐ์ ๊ฒฝ๋ก์ โTheLab.kvโํ์ผ์ ์์ฑํ๋ค. / |-main.py |-TheLab.kv .pyํ์ผ์์ ์ํ๋ layout class๋ฅผ ์์๋ฐ์ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ ์๋ ์๊ณ , .kvํ์ผ์์ ๋ฐ๋ก ์์ฑํ ์๋ ์๋ค. ๋จ, .kvํ์ผ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ค๋ฉด .pyํ์ผ์ ์ ์๋ class๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. <EXAMPLE@BoxLayout> ์ ๊ฐ์ด .pyํ์ผ์ class ์ ์ธ์ ์๋ตํ๊ณ default ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค. ///////// .py ///////// class Box(BoxLayout): pass ///////// .kv ///////// <Box>: # .py์์ ์ ์๋ Box๊ฐ์ฒด๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ GridLayout: # ์ดํ๋ถํฐ๋ kivy์์ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ค ์ฌ์ฉ ๊ฐ๋ฅ label: text:"lb" <Box2@BoxLayout>: # .pyํ์ผ์์ ์๋ฌด๊ฒ๋ ํ์ง ์๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํ๊ธฐ ์ซ์ ๋ ์ฌ์ฉ /////////////////////// ex) class ์์์ ์์ฑ ์ค์ :self.orientation = "vertical" ex) kvํ์ผ์์ ์์ฑ ์ค์ : orientation: "vertical" <NAME>ํํ๋ก ์ ์ธํ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. <Box>: ... <Box2>: Button: ... Box: # ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด ... .kvํ์ผ์ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค. ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋ด์ฉ๋ค์ ์์ฑ์ ์ ์ํ๊ณ ๋ฐฐ์นํ ์ ์๋ค. MainWidget: # ํ๋ฉด์ ํ๊ธฐํ ๊ฐ์ฒด(widget, layout, โฆ) : # widget ์ ์ Button: # widget ๋ด๋ถ ํญ๋ชฉ ์ ์ธ, kivy์์ ์ง์ํ๋ ๊ฐ์ฒด์ ์ข ๋ฅ text:โAโ Button: text:โBโ ...