簡體   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