노는게 제일 좋습니다.

tkinter 처음하기 본문

Python/기타 공부

tkinter 처음하기

노는게 제일 좋습니다. 2016. 9. 3. 19:33

참고자료 http://pythonstudy.xyz/python/article/109-Tkinter-%EC%86%8C%EA%B0%9C


tcl : 언어의 한 종류. https://ko.wikipedia.org/wiki/Tcl

tk : 플랫폼 독립적인 GUI라이브러리 ( 출처 위키백과 )

묶어서 tcl/tk라고 한다. http://www.tcl.tk/


tkinter : Tkinter is Python's de-facto standard GUI (Graphical User Interface) package. It is a thin object-oriented layer on top of Tcl/Tk. Tkinter is not the only GuiProgramming toolkit for Python. It is however the most commonly used one. CameronLaird calls the yearly decision to keep TkInter "one of the minor traditions of the Python world."

참고 https://wiki.python.org/moin/TkInter


박스 띄우기

Tk()는 트킨터 객체의 생성자이다. 윈도10기준 프롬프트에서 root=Tk()를 하면 빈 창이 뜬다.

(Tk객체).mainloop()를 하면 창에서 입력을 받아들인다.


위젯달기

wizet = 위젯명(달아줄 Tk객체, ... )

wizet.pack()   

와 같은 방식으로 달아줄 수 있다.


예를 들어, 라벨 위젯은 이렇게 단다.

root = Tk()

label_ex = Label(root, text = "Example")

label_ex.pack()


위젯 위치 정하기

1. place, 2.pack, 3.grid

바로 위 예제의 경우 pack을 사용했다. grid는 표와 같은 공간(레이아웃)에서 위치를 정해주는 것이다.


아래는 grid로 만들어본 상자이다. (기능은 없음)

grid에서 row는 세로줄을, column은 가로줄을 의미한다.

from tkinter import *
root = Tk()

title = Label(root,text="Input")
txtbox = Entry(root, width = 15)
btn_1= Button(root, text = "Submit", width=10)
btn_2 = Button(root, text = "Cancel", width=10)

title.grid(row=0, column=0)
txtbox.grid(row=0,column=1)
btn_1.grid(row=1,column=1)
btn_2.grid(row=2,column=1)

grid에서 row는 세로줄을, column은 가로줄을 의미한다.



의문. 이렇게 하고싶으면 어떻게 해야할까


같은 row와 column에 하면 마지막에 해당 위치에 입력된 것으로 기존의 것이 대체된다.

예를들어, 다음과 같이 하면 btn_2만 나온다.

btn_1.grid(row=1,column=1)
btn_2.grid(row=1,column=1) 





Comments