[英]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.