将textvariable用于Tkinter(或ttk)LabelFrame

时间:2017-11-16 16:24:35

标签: python tkinter

我想更新Tkinter LabelFrame小部件的标签。

对于Label窗口小部件,可以使用textvariable属性来完成此操作,可以为其分配StringVar

我想做同样的事情,但对于LabelFrame

self.labelText = StringVar()
self.selectionFrame = ttk.LabelFrame(self, textvariable=self.labelText)

(...)

if A:
     self.labelText.set("LabelA")
elif B:
     self.labelText.set("LabelB")

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

你做不到。 Tkinter LabelFrame和ttk LabelFrame都不支持将变量与窗口小部件相关联。

如果你真正问的是如何更改标签,那么你可以使用configure方法:

self.selectionFrame.configure(text="hello")

答案 1 :(得分:0)

我刚刚找到某种解决方案 - 使用$rowID = $conn->real_escape_string($_POST['rowID']); //rowID is the DOM element name 属性提供一个单独的labelwidget对象,该对象使用基础Label

StringVar

这样,我可以更新self.labelText = StringVar() self.labelWidget = Label(self, textvariable=self.labelText) self.selectionFrame = ttk.LabelFrame(self, labelwidget=self.labelWidget) 以更改LabelFrame的标签

labelText

答案 2 :(得分:0)

我发现由于文本长度的缘故,设置新标签文本存在问题。 因此,我建议如下所述定义labelwidget的宽度:

self.labelWidget = Label(self, textvariable=self.labelText, width = 20)