* Tkinter 목차 보기
지난 시간에 배운 내용에서부터 시작해봅시다.
import tkinter as tk
class Window(tk.Tk):
def __init__(self):
super().__init__()
self.title("HOOKSMITH")
self.label = tk.Label(self, text="ARE YOU SURE?")
self.label.pack(fill=tk.BOTH, expand=1, padx=80, pady=20)
요기까지가 딱 저번에 배웠던 내용입니다.
1. 버튼 정의하기
먼저 버튼을 정의해야 합니다. yes와 no 버튼을 다음과 같이 정의하도록 하죠.
def yes_button(self):
self.label.configure(text="YES")
self.after(0, self.destroy)
def no_button(self):
self.label.configure(text="NO")
self.after(0, self.destroy)
위치는 상관없습니다. 저 텍스트의 이름이 바로 버튼에 표시될 텍스트를 의미하고요,
특별히 중요시 봐야할 곳은 self.after 명령어입니다.
첫 번째 변수가 시간이고, self.destory 버튼 눌렀을 시 취하는 행동입니다.
일단 여기서는 바로 종료하는 기능을 가진 버튼을 생성해보도록하겠씁니다.
* 버튼 정의는 어디에 위치하든지 상관없습니다.
2. 버튼 이름 정하기
버튼 이름 먼저 정합니다. 저는 다음과 같이 정했습니다.
yes_button = tk.Button(self, text="YES", command=self.yes_button)
등호 앞에부분이 버튼 이름이고요, 첫 번째 변수 self 창으로, 텍스트는 YES, 명령은 정의했던 Yes_button을 쓰겠다는 의미입니다.
3. 버튼 위치 정하기
yes_button 바로앞 줄에 다음과 같이 입력해주세요
yes_button.pack(side=tk.LEFT, padx=(40, 0), pady=(0, 40))
역시 기하 관리자 팩으로 버튼 위치를 정하네요. 사이드는 왼쪽부터라는 의미로, 행과 열 위치를 정해줍니다.
No 버튼 역시 같은 방식으로 정의합니다.
4. 창 루프 활성화 하고 실행
창 루프 명령어를 다음과 같이 넣어줍니다.
if __name__ == "__main__":
window = Window()
window.mainloop()
항상 띄워쓰기 주의하시고, 실행하면 다음과 같이 yes, no 버튼 완성!!!
버튼 눌러주면 자동으로 창 종료합니다.
전체적인 예시코드는 다음과 같습니다.
import tkinter as tk
class Window(tk.Tk):
def __init__(self):
super().__init__()
self.title("HOOKSMITH")
self.label = tk.Label(self, text="ARE YOU SURE?")
self.label.pack(fill=tk.BOTH, expand=1, padx=80, pady=20)
yes_button = tk.Button(self, text="YES", command=self.yes_button)
yes_button.pack(side=tk.LEFT, padx=(40, 0), pady=(0, 40))
no_button= tk.Button(self, text="NO", command=self.no_button)
no_button.pack(side=tk.RIGHT, padx=(0, 40), pady=(0, 40))
def yes_button(self):
self.label.configure(text="YES")
self.after(0, self.destroy)
def no_button(self):
self.label.configure(text="NO")
self.after(0, self.destroy)
if __name__ == "__main__":
window = Window()
window.mainloop()
'TOOL FOR ART > Python GUI' 카테고리의 다른 글
3. Tkinter _ 문자 입력받기 (0) | 2021.10.17 |
---|---|
1. Tkinter 창 생성하고 텍스트 표시하기 (0) | 2021.08.15 |
0. Tkinter 기본 용어 (0) | 2021.08.15 |
파이썬 GUI 프로그래밍 _ Tkinter 배워보기 (0) | 2021.08.15 |