-1
下面的腳本文本標籤,退出按鈕創建一個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
錯誤。所以問題是在init_window()
中創建的test_label
無法從set_label_text()
開始使用。我如何解決它?
您是否可以縮進'set_label_text'函數來使其分開'init_window?' – GreenSaber
只需縮進它 - doesent工作; 縮進和像這樣變化: 'def set_label_text(self): self.test_label.config(text ='changed the value')' doesen't work; 縮進並像這樣改變: 'def set_label_text(): test_label.config(text ='changed the value')' doesen't work to; 在所有情況下,我得到''窗口'對象沒有屬性'set_label_text''錯誤 – t411tocreate