Python tkinter textvariable不更新

时间:2014-05-08 16:53:47

标签: python tkinter

我有一个经常变化的标签,所以我把它放在一个功能中 但是当我调用该函数时,标签不会显示。如果我将textvarible设置为text,那么它会按预期工作 我做错了什么?

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 个答案:

答案 0 :(得分: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))

然后从set

中拨打updateSearchLabel
def updateSearchLabel(self, textVar):
    self.lblSearchText.set(textVar)