Python tkinter-LabelFrame不显示标签

Python tkinter-LabelFrame不显示标签,python,tkinter,Python,Tkinter,我试图在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.LabelF

我试图在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对象,而是被调用函数包的返回值

这意味着,如果我们在两个不同的行中写入相同的内容,一行用于对象初始化,另一行用于打包,问题就会消失。像这样-:

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,因此应该分别完成打包和初始化。

LabelFrame=tk.LabelFrame(root,text=“Title of Frame”).pack()更改为
LabelFrame=tk.LabelFrame(root,text=“Title of Frame”)
LabelFrame.pack()
换句话说:您将
None
(返回值
.pack()
)分配给
labelframe
。这使得标签直接成为根窗口的子窗口;由于没有内容,LabelFrame缩小为零,因此没有地方显示其边框或标题。这是否回答了您的问题?谢谢,解决问题的利兹扎德!