Python 如何访问标签以在Tkinter中更改其文本
我正在尝试更改标签的文本,但我不知道如何访问它。我已经添加了标签和按钮,我想在单击按钮时更改标签的文本。但是,我无法从函数访问标签-请参见带有问号的行。我应该把它改成什么 当我按原样尝试代码时,我得到“示例实例没有属性‘frame2’” 我正在使用Python 2.7 ================更新========= 将frame2更改为self.frame2,但没有解决问题Python 如何访问标签以在Tkinter中更改其文本,python,python-2.7,tkinter,Python,Python 2.7,Tkinter,我正在尝试更改标签的文本,但我不知道如何访问它。我已经添加了标签和按钮,我想在单击按钮时更改标签的文本。但是,我无法从函数访问标签-请参见带有问号的行。我应该把它改成什么 当我按原样尝试代码时,我得到“示例实例没有属性‘frame2’” 我正在使用Python 2.7 ================更新========= 将frame2更改为self.frame2,但没有解决问题 class Example(Frame): def __init__(self, parent):
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.all = []
self.path = ""
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("SomeName")
self.style = Style()
self.style.theme_use("default")
self.frame2 = Frame(self, relief=FLAT, borderwidth=2)
self.frame2.pack(side=TOP, fill=BOTH, expand=False)
# this is my label
usrLable = Label(self.frame2, text="Username: ")
usrLable.pack(side=LEFT, padx=5, pady=1)
frame6 = Frame(self, relief=FLAT, borderwidth=2)
frame6.pack(fill=BOTH, expand=True)
# this is my button
stopButton = Button(frame6, text="Stop", command=self.stopButtonClick)
stopButton.pack(side=LEFT)
def stopButtonClick(self):
try:
self.frame2.usrLable.configure(text="hello") # ?????????????
except Exception,e:
print str(e)
return
您需要替换以下行:
frame2 = Frame(self, relief=FLAT, borderwidth=2)
frame2.pack(side=TOP, fill=BOTH, expand=False)
与:
使frame2
成为实例属性而不是局部变量
并相应地将对frame2
的引用更改为self.frame2
与usrLable
相同
事实上,标签被添加到了frame2中,所以这是我的一个输入错误,但即使我将frame2更改为self.frame2,我也会得到一个错误:Frame实例没有属性“usrLable”@THTodorov,在这个问题中,你说你有“示例实例没有属性“frame6”`error。它也是
frame2
?@THTodorov,你能给出可以运行的代码吗?只看到问题中的代码,我不知道是什么问题。更新了问题-现在是第2帧出现错误。仍然不起作用,我将第2帧更改为self。两行中的第2帧都是局部变量self.frame2
是一个实例变量。如果希望在多个位置使用变量,则需要始终使用实例变量。
self.frame2 = Frame(self, relief=FLAT, borderwidth=2)
self.frame2.pack(side=TOP, fill=BOTH, expand=False)
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.all = []
self.path = ""
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("SomeName")
self.style = Style()
self.style.theme_use("default")
self.frame2 = Frame(self, relief=FLAT, borderwidth=2)
self.frame2.pack(side=TOP, fill=BOTH, expand=False)
self.usrLable = Label(self.frame2, text="Username: ")
self.usrLable.pack(side=LEFT, padx=5, pady=1)
self.frame6 = Frame(self, relief=FLAT, borderwidth=2)
self.frame6.pack(fill=BOTH, expand=True)
stopButton = Button(self.frame6, text="Stop", command=self.stopButtonClick)
stopButton.pack(side=LEFT)
def stopButtonClick(self):
self.usrLable.configure(text="hello")