다음 스크립트는 텍스트 레이블, 종료 버튼으로 Tkinter의 창을 만들고 변경 텍스트 버튼 :파이썬 - 변경 Tkinter의 라벨
from tkinter import *
from tkinter import ttk
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self):
test_label = Label(root, text="none").grid(row=0, column=0, sticky=W)
change_text_btn = Button(root, text="change_text", command=self.set_label_text).grid(row=2, column=0, sticky=W)
exit_btn = Button(root, text="Exit", command=self.client_exit).grid(row=2, column=1, sticky=W)
def set_label_text(self):
test_label.config(text='changed the value')
def client_exit(self):
exit()
if __name__ == '__main__':
root = Tk()
app = Window(root)
root.mainloop()
change_text_btn
에 클릭 후 나는 NameError: name 'test_label' is not defined
오류가 발생합니다. 그래서 문제는 test_label
에서 생성 된 init_window()
은 set_label_text()
범위에서 벗어날 수 없다는 것입니다. 어떻게 수정해야합니까?
'set_label_text' 함수를 들여다 써서'init_window? '를 없앨 수 있습니까? – GreenSaber
그냥 들여 쓰기 만하면됩니다. 들여 쓰기 및 변경 : 'def set_label_text (self) : self.test_label.config (text = '값 변경')' does not work; 들여 쓰기 및 변경 : 'def set_label_text() : test_label.config (text = '값 변경')' 도 작동하지 않습니다. 모든 경우에''Window '객체에'set_label_text'' 속성의 오류가 없습니다. – t411tocreate