簡體   English   中英

tkinter - LabelFrame 不顯示 label

[英]tkinter - LabelFrame not displaying label

我正在嘗試在 tkinter 中創建一個LabelFrame ,但是沒有顯示框架的“標題”,也沒有顯示LabelFrame周圍的邊框。

最小的例子:

import tkinter as tk

root = tk.Tk()
root.title("Test")
root.geometry("400x400")

instance = tk.Label(root, text="SCTL:").pack()

labelframe = tk.LabelFrame(root, text="Title of Frame").pack()
instance2 = tk.Label(labelframe, text="some text").pack(padx=10, pady=10)

root.mainloop()

此示例將顯示“一些文本”,但不會顯示“框架標題”。 我正在使用 Python 3.8.8 和 tkinter 8.6.10。 有誰知道我如何獲得框架的標題和要顯示的邊框?

先感謝您!

所以這里的問題是你正在初始化和打包 labelframe 在@jasonharper 指出的同一行中-: labelframe = tk.LabelFrame(root, text="Title of Frame").pack()

請注意,這不起作用,因為變量 labelframe 沒有被分配新初始化的 labelframe object,而是被調用的 function 包的返回值。

這意味着如果我們在兩行不同的行中寫入相同的內容,一是用於 object 初始化,另一行用於打包,問題就消失了。 像這樣-:

labelframe = tk.LabelFrame(root, text="Title of Frame") # First initialize the object and store it in the variable.
labelframe.pack() # Then use the variable to pack it.

一般來說,如果 tkinter 小部件要在程序中長期使用,我建議不要將其打包在與初始化相同的行中,這不僅會丟失新初始化對象的引用,還會導致此類問題。

但是如果是臨時的,那么可以在一行中完成。 在這里,您在下一行中使用了 LabelFrame,因此應該分別進行打包和初始化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM