Python tkinter 的 textvariable 不更新
我有一个标签,它的内容经常会变,所以我把它放在了一个函数里。
但是当我调用这个函数的时候,标签却没有显示出来。如果我把文本变量直接设置为文本,那就能正常工作。
我哪里做错了呢?
text = "Now visible to others as {}".format(SERVER_NAME)
self.updateSearchLabel(text)
def updateSearchLabel(self, textVar):
text = StringVar()
text.set(textVar)
self.lblSearch = Label(self.gpBt, textvariable=text)
self.lblSearch.grid(row=0, column=0, sticky=W, padx=(10,0), pady=(5,0))
1 个回答
4
每次调用 updateSearchLabel
时,不要每次都新建一个标签。你可以先创建一个 Label
,然后保存一个指向 StringVar
的引用:
def createSearchLabel(self):
self.lblSearchText = StringVar()
self.lblSearch = Label(self.gpBt, textvariable=self.lblSearchText)
self.lblSearch.grid(row=0, column=0, sticky=W, padx=(10,0), pady=(5,0))
然后在 updateSearchLabel
里面调用 set
方法:
def updateSearchLabel(self, textVar):
self.lblSearchText.set(textVar)