728x90
예제에 따라 bind와 trace가 섞여있어서 햇갈렸으나 trace가 더 적절하다고 판단됨
구글 바드에 의하면 차이가 이렇다
bind와 trace는 모두 Tkinter에서 이벤트에 응답하는 데 사용되는 메서드이지만 작동 방식이 다릅니다. bind 메서드는 이벤트와 이벤트에 대한 응답으로 호출되는 함수를 연결하는 데 사용됩니다. trace 메서드는 변수의 값이 변경될 때마다 호출되는 함수를 연결하는 데 사용됩니다.
버튼 배치의 경우 그리드와 팩이 있는데 여기서는 팩 사용 (출처 : 뤼튼)
pack(): pack은 요소를 부모 위젯 안에서 가능한 한 작은 공간에 맞추어 배치합니다. 위젯들은 기본적으로 상단에서 아래로 쌓이며, 옵션으로 왼쪽에서 오른쪽으로 배치할 수도 있습니다. pack은 간단한 인터페이스에 적합하지만, 복잡한 배치를 제어하기에는 한계가 있습니다.
grid(): grid는 부모 위젯을 행과 열로 나눈 격자에 위젯을 배치합니다. 각 위젯의 행과 열의 인덱스를 지정하여 원하는 위치에 배치할 수 있습니다. grid는 복잡한 인터페이스와 정렬에 더 적합하며, 행과 열의 인덱스를 이용하여 직관적으로 배치할 수 있습니다.
import tkinter as tk
window = tk.Tk()
entry_var = tk.StringVar()
def on_entry_change(*args):
if entry_var.get():
button_OK.configure(state="normal")
else:
button_OK.configure(state="disabled")
def on_button_click():
print(entry_var.get())
entry = tk.Entry(window, textvariable=entry_var)
entry.pack()
entry_var.trace("w", on_entry_change)
button_OK = tk.Button(window, text="OK", command=on_button_click, state="disabled")
button_OK.pack()
window.mainloop()
728x90
'Python' 카테고리의 다른 글
파이썬 SSL 오류 발생시 (0) | 2023.07.12 |
---|---|
amazon linux 2 - 파이썬 3.11 설치 (0) | 2023.07.10 |
판다스 치트시트 (0) | 2023.04.27 |
비동기로 웹크롤링 (0) | 2023.04.01 |
[장고] 알아두면 좋은 내용 (0) | 2023.02.14 |