[Tkinter] ๊ธฐ๋ณธ์ ํ
Tkinter๋ฅผ ์ด์ฉํ UI ๊ตฌํ ์ฝ๋๋ ๋ณดํต ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ด๋ค.
from Tkinter import * #import Tkinter library
window=Tk()#UI์ฐฝ ์ ์ธ
#์ฝ๋๋ค
window.mainloop()#UI์ฐฝ ์คํ
๋ฐ๋ผ์ Tkinter๋ก UI๋ฅผ ์ ๊ตฌํํ๊ธฐ ์ํด์๋ "#์ฝ๋๋ค"์ ๋ค์ด๊ฐ ๋ด์ฉ์ ์ ์์์ผ ํ๋ค. ๊ทธ ๋ด์ฉ์ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ๋ค.
1. UI์ ๊ตฌํํ ์์ ฏ(๋ฒํผ, ๋ผ๋ฒจ, ์
๋ ฅ์นธ...) ์ ์ด
2. ์์ ฏ์ ๊ธฐ๋ฅ ์ ์ด
์์ฃผ ์ฐ์ด๋ ์์ ฏ๊ณผ ๊ทธ ์์ ฏ์ ๊ธฐ๋ฅ์ ์ ์ดํ๋ ๋ฒ์ ๋ํด ์์๋ณด์.
Label : ๊ธ์, ์ด๋ฏธ์ง ๋ฑ์ ํฌํจํ๋ ๋ผ๋ฒจ์ ๋ง๋ ๋ค.
Text: ์
์ถ๋ ฅ์ด ๊ฐ๋ฅํ ํ
์คํธ์ฐฝ์ ๋ง๋ ๋ค.
Button: ๋ฒํผ์ ๋ง๋ ๋ค. command ๋ผ๋ parameter๋ก ์คํํ ํจ์๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ค๋๊ฒ ๋ฝ์ธํธ
์์ ฏ์ ์์ฑ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค
label1=Label(window, text="asdf", bg="white", fg="blue", relief="solid", width=100, height=100, padx=3, pady=3, anchor="s")
label1์ ๋ด๊ฐ ์ค์ ํ ๋ณ์๊ณ , ์ด ๋ณ์์ ์์ ฏ์ ํ ๋นํ๋ ํจ์๊ฐ Label์ด๋ค. Labelํจ์์ ์ธ์๋ก ์ฌ๋ฌ parameter๋ฅผ ์ ๋ฌํ์ฌ ๋๋น, ๋ฐฐ๊ฒฝ์, ๋ด์ฉ ๋ฑ์ด ์ฐ๋ฆฌ ๋ง์๋๋ก ์ค์ ๋ ์์ ฏ์ ๋ง๋๋ ๊ฒ์ด๋ค. parameter๋ฅผ ํ๋์ฉ ์ค๋ช
ํด ์ฃผ๊ฒ ๋ค.
์ฒซ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋๋ ๊ฒ์ UI์ฐฝ ๋ณ์์ด๋ค. ๊ธ ์ด๋ฐ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด window๋ผ๋ ๋ณ์์ UI์ฐฝ์ ํ ๋นํ๊ธฐ ๋๋ฌธ์ ๋๋ window๋ฅผ ๋ฃ์ด์ผ ํ๋๊ฒ์ด๋ค.
text๋ผ๋ ํ๋ผ๋ฏธํฐ์๋ ๊ทธ ์์ ฏ์ ํ์ํ ๋ฌธ์์ด์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
bg๋ ๋ฐฐ๊ฒฝ์, fg๋ ํฐํธ์ ํ๋ผ๋ฏธํฐ์ด๋ค. "orange", "blue"๋ฑ์ผ๋ก ๋ฌธ์์ด๋ก ์ ๋ฌํด๋ ๋๊ณ , "#0a243c"์ฒ๋ผ ์์์ฝ๋๋ก ์ ๋ฌํ ์๋ ์๋ค.
relief์๋ ํ
๋๋ฆฌ ์คํ์ผ์ ์ ๋ฌํ๋ฉด ๋๋ค. ํ
๋๋ฆฌ ์ด๋ฆ๊ณผ ๋ชจ์์ ๋ค์๊ณผ ๊ฐ๋ค.

width, height์๋ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด ๋๋ค. pixel๋จ์์ด๋ค.
padx,pady์๋ ์์ ฏ ๋ด๋ถ์ ๊ฐ๋ก, ์ธ๋ก ์ฌ๋ฐฑ ๋๋น๋ฅผ ์
๋ ฅํด์ฃผ๋ฉด ๋๋ค. pixel ๋จ์์ด๋ค.
anchor์๋ ์์ ฏ ๋ด์ฉ์ ์ ๋ ฌ๋ฐฉํฅ์ ์
๋ ฅํด์ฃผ๋ฉด ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ด๋ฐ์ ๋ ฌ์ด๊ณ "n","e", "s", "w", "ne" ๋ฑ ๋์๋จ๋ถ์ผ๋ก ํํ๋๋ ๋ฌธ์์ด์ ์ ๋ฌํด์ค ์ ์๋ค.
Text, Button ์์ ฏ๋ ๊ฑฐ์ ๋์ผํ๋ค.
Button์์ ฏ์๋ command๋ผ๋ parameter๋ฅผ ์ ๋ฌํด์ค ์ ์๋ค. ๋ฒํผ์ด ๋๋ ธ์ ๋ ์คํํ ํจ์๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด ๋๋ค.
์๋ฅผ๋ค์ด ๋ฒํผ์ด ๋๋ ธ์๋ myfunc์ด๋ผ๋ ํจ์๋ฅผ ์คํํ๊ณ ์ถ๋ค๋ฉด
button1=Button(window, command=myfunc)
์ด๋ฐ์์ผ๋ก ์์ ฏ์ ์์ฑํ๋ฉด ๋๋ค.