繁体   English   中英

对Tkinter(或ttk)LabelFrame使用textvariable

[英]Using textvariable for a Tkinter (or ttk) LabelFrame

我想更新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")

我该如何实现?

你不能 Tkinter LabelFrame和ttk LabelFrame都不支持将变量与小部件关联。

如果您真正要问的是如何更改标签,则可以使用configure方法:

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

我只是找到了一种解决方案-使用labelwidget属性提供使用基础StringVar的单独Label对象:

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

这样,我可以更新labelText来更改labelText的标签

self.labelText.set("New Label")

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM