ì°½(Window) 만드는법 ¶
~cpp from Tkinter import * root = Tk() root.mainloop()
í”„ë ˆìž„ 만드는법 ¶
ì°½ì—� í”„ë ˆìž„ì�„ ë§Œë“ í›„ì—� GUIê°�체들ì�„ 넣어준다.(그냥 rootì—� í•´ë�„ ë�œë‹¤.)
í”„ë ˆìž„ì�€ ì°½ì—� ì˜�ì—ì�„ 나누어 ì¤€ë‹¤ê³ ë³´ë©´ë�œë‹¤.
í”„ë ˆìž„ì�€ ì°½ì—� ì˜�ì—ì�„ 나누어 ì¤€ë‹¤ê³ ë³´ë©´ë�œë‹¤.
~cpp frame = Frame(root) frame.pack()
GUI�체들� 만들어 준후� pack� 해주어야 보�게 �다.
Packer ë�™ìž‘ì›�리 ¶
pack()ì†�ì—� 여러가지 옵션ì�„ ì„¤ì •í•´ 줄수있다.
side=LEFT # ì •ë ¬ë°©ì‹�(RIGHT, TOP, BOTTOM)
after=button1 # 현재 packí•˜ë ¤ëŠ” ê°�체를 button1바로뒤ì—� 만들어 준다.
before=button1 # 현재 packí•˜ë ¤ëŠ” ê°�체를 button1바로앞ì—� 만들어 준다.
fill=X # �체를 창� X축�기� 맞추어서 만들어준다. Y축으로� 가능
padx=5, pady=5 # ê°� ê°�체들 사ì�´ì�˜ 간격ì�„ ì„¤ì •í•œë‹¤.
ipadx=5, ipady=5 # ê°�ì²´ë‚´ë¶€ì�˜ 간격ì�„ ì„¤ì •í•œë‹¤.
anchor=NW # ê°�체위치를 ë¶�서쪽으로 ì„¤ì •. fill옵션ì�„ 사용하지않아야 ì œëŒ€ë¡œ ë³´ì�¼êº¼ ê°™ì�€...
after=button1 # 현재 packí•˜ë ¤ëŠ” ê°�체를 button1바로뒤ì—� 만들어 준다.
before=button1 # 현재 packí•˜ë ¤ëŠ” ê°�체를 button1바로앞ì—� 만들어 준다.
fill=X # �체를 창� X축�기� 맞추어서 만들어준다. Y축으로� 가능
padx=5, pady=5 # ê°� ê°�체들 사ì�´ì�˜ 간격ì�„ ì„¤ì •í•œë‹¤.
ipadx=5, ipady=5 # ê°�ì²´ë‚´ë¶€ì�˜ 간격ì�„ ì„¤ì •í•œë‹¤.
anchor=NW # ê°�체위치를 ë¶�서쪽으로 ì„¤ì •. fill옵션ì�„ 사용하지않아야 ì œëŒ€ë¡œ ë³´ì�¼êº¼ ê°™ì�€...
~cpp button.pack(side=LEFT, fill=X, padx=5, pady=10)버튼ì�„ ì™¼ìª½ì •ë ¬ì—� ì°½ì�˜ Xì¶•ë§Œí�¼ì�˜ í�¬ê¸°ë¡œ 여백ì�€ 가로5, 세로10으로 만들어줘ë�¼....
~cpp button.place(30, 30, width=70, height=25)
위치 ë°� í�¬ê¸°ë¥¼ ìž„ì�˜ë¡œ ì§€ì •
ë�°ì�´í„° ìž…ë ¥ì°½ ¶
ë�°ì�´í„°ë¥¼ ìž…ë ¥í•˜ëŠ” 하얀박스..
~cpp entry = Entry(frame) entry.insert(0, '') # 처�부분� 공백 문�열� 추가 entry.pack(pady=5)
Label ¶
문ìž�를 표시해줄수 있는 ê°�ì²´(ì˜�ì—)...
textWrite = Label(frame, text="Hello World!")
textWrite.pack()
textWrite.pack()
푸시 단추 ¶
ì�¼ë°˜ì �ì�€ 버튼
~cpp button = Button(frame, text="Push Button", fg="red", command=frame.quit) button.pack(side=LEFT)
packí• ë•Œ ì •ë ¬ ë°©ì‹�ì�„ ì •í•´ì¤„ìˆ˜ìžˆë‹¤. ì—¬ë°±ì§€ì •ë�„ 가능..
ì²´í�¬ 단추 ¶
ìž‘ì�€ 하얀박스모양ì�´ê³ ì²´í�¬í•˜ë©´ v표시가 ë�œë‹¤.
~cpp
var = IntVar() # 0ì�„ 초기값으로 하는 ì •ìˆ˜ 변수 ()ì†�ì—� 숫ìž�를 넣어주면 그값으로 초기화ë�¨.
check = Checkbutton(frame, text="Check Button", variable=var, command=cb)
check.pack()
def cb():
if var.get() == 1:
w.configure(text='Variable is Set')
elif:
w.configure(text='Variable is Reset')
command는 단추를 ëˆŒë €ì�„때 수행하는 함수를 ì§€ì •í•œë‹¤.
ë�¼ë””오 단추 ¶
ë�™ê·¸ëž€ 모양ì�¸ë�° ì„ íƒ�하면 까만ì �(?)ì�´ 표시ë�œë‹¤.
ê°� 그룹ì—�서 한개만 ì„ íƒ�í• ìˆ˜ 있다.
ê°� 그룹ì—�서 한개만 ì„ íƒ�í• ìˆ˜ 있다.
~cpp var = IntVar() radio1 = Radiobutton(frame, text="One", variable=var, value=1) radio2 = Radiobutton(frame, text="Two", variable=var, value=2) radio1.pack(anchor=w) radio2.pack(anchor=w)
ê°™ì�€ 그룹내ì—� 있는 ë�¼ë””오 단추들ì�€ ê°™ì�€ variableì�„ ê³µìœ í•´ì•¼í•œë‹¤.
(ì—으로 varivableì�´ 같으면 ê°™ì�€ 그룹ì�´ë�¼ê³ ë´�야하는건있지...???)
(ì—으로 varivableì�´ 같으면 ê°™ì�€ 그룹ì�´ë�¼ê³ ë´�야하는건있지...???)
radio1단추를 ì„ íƒ�하면 var변수ì�˜ ê°’ì�€ 1ì�´ë�˜ê³ , radio2단추를 ì„ íƒ�하면 var변수ì�˜ ê°’ì�´ 2ê°€ë�œë‹¤.
Radiobutton 함수호출�서 indicatoron=0� 넣어주면 �디오버튼모양� 푸시버튼모양으로 �다.
메뉴 ¶
스í�¬ë¡¤ ë°” ¶
스�롤바는 대부분 리스트박스, 캔버스(Canvas)등과 함께 사용�다.
~cpp scrollbar = Scrollbar(frame) scrollbar.pack(side=RIGHT, fill=Y)
수ì§�(수í�‰)스í�¬ë¡¤ë°”를 ìœ„ì ¯ì—� 연결하기 위해서 2가지 ì�¼ì�„ 해야한다.
1. ìœ„ì ¯(ê°�ì²´)ì�˜ yscrollcommand 콜백 함수를 스í�¬ë¡¤ë°” set ë©”ì�˜ë“œì—� ì„¤ì •í•œë‹¤.
2. 스í�¬ë¡¤ë°”ì�˜ command를 ìœ„ì ¯ì�˜ yviewì—� ì„¤ì •í•˜ë‹¤.
1. ìœ„ì ¯(ê°�ì²´)ì�˜ yscrollcommand 콜백 함수를 스í�¬ë¡¤ë°” set ë©”ì�˜ë“œì—� ì„¤ì •í•œë‹¤.
2. 스í�¬ë¡¤ë°”ì�˜ command를 ìœ„ì ¯ì�˜ yviewì—� ì„¤ì •í•˜ë‹¤.
리스트 ìƒ�ìž� ¶
수� 스�롤바를 추가시킨 리스트 ��...
~cpp listbox = Listbox(frame, yscrollcommand=scrollbar.set) # 1번 작업 listbox.pack(side=LEFT, fill=BOTH) scrollbar.config(command=listbox.yview) # 2번 작업수í�‰ 스í�¬ë¡¤ë°”사용시ì—�는 yscrollcommandëŒ€ì‹ xscrollcommand, yviewëŒ€ì‹ xview를 사용..
í…�스트 ì—�디터 ¶
다양한 í…�스트 문서를 표시해줄수 잇다. 다양한 í�°íŠ¸ë‚˜ ì�´ë¯¸ì§€ë“±ë�„ 가능함. ë˜� ìˆ˜ì •ë�„ í• ìˆ˜ìžˆë‹¤.
※Label� �스트를 표시만 해줄수 있�..
※Label� �스트를 표시만 해줄수 있�..
~cpp textArea = Text(frame, width=80, height=20) textArea.pack()
í…�스트 삽입 방법 ¶
~cpp textArea.insert(END, "Hello") textArea.insert(INSERT, "world") textArea.insert(1.0, "!!!!!") # 버튼� �스트 �디터� 추가하는 방법 button = Button(textArea, text="Click") textArea.window_create(INSERT, window=button)
END문 문서� 마지막� 삽입
INSERT는 현재 커서위치� 삽입
숫ìž�는 삽입위치 ì§€ì • ë�¼ì�¸, ì—´
INSERT는 현재 커서위치� 삽입
숫ìž�는 삽입위치 ì§€ì • ë�¼ì�¸, ì—´
window_createëŒ€ì‹ ì—� image_create를 ì�´ìš©í•˜ì—¬ 단추를 문서 안ì—� 추가시킬수ë�„ 있ì�Œ.
í…�스트 ì‚ì œ 방법 ¶
~cpp textArea.deletet(1.0, END) # í…�스트 ì „ì²´ ì‚ì œ textArea.deletet(INSERT) # 현재 문ìž� ì‚ì œ textArea.deletet(button) # 단추 ì‚ì œ
í…�스트 ì�½ê¸° ¶
~cpp contents = text.get(1.0, END)
ì „ì²´ 문서를 ê°€ì ¸ë‹¤ê°€ contents 변수ì—� ì €ìž¥í•œë‹¤.
~cpp textArea.config(state=DISABLED)
í…�스트를 ì�½ê¸°ì „용으로 만듬.(state=NORMAL로 해주면 ìˆ˜ì •ê°€ëŠ¥)
커서위치 알아내기 ¶
~cpp index = textArea.index(INSERT)
index� '1.17'과 같� 값� 리턴�.










