将textvariable用于Tkinter(或ttk)LabelFram

2024-09-29 19:06:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想更新TkinterLabelFrame小部件的标签。在

对于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")

我怎样才能做到这一点?在


Tags: 用户self属性部件标签事情labelttk
3条回答

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

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

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

我发现,由于文本长度的原因,设置新标签文本时出现问题。 因此,我建议定义一个宽度labelwidget,如下所述:

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

我刚刚找到了一种解决方案-使用labelwidget属性提供一个单独的Label对象,该对象使用底层的StringVar

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

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

^{pr2}$

相关问题 更多 >

    热门问题