python - tkinter - LabelFrame 不显示标签
问题描述
我正在尝试LabelFrame
在 tkinter 中创建一个,但是没有显示框架的“标题”,也没有显示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。有谁知道我如何获得框架的标题和要显示的边框?
先感谢您!
解决方案
所以这里的问题是你正在初始化和打包标签框,就像@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,因此应该分别进行打包和初始化。
推荐阅读
- c# - .NET MAUI - 打包到 MSIX
- webgl - 来自 openlayers 画布的奇怪(可能是插值)值
- python-3.x - 用 pd.NA 替换特定的列值
- javascript - Sails 创建新项目因权限而失败
- azure - Azure Functions .Net 5:是否可以以某种方式实现 POCO 绑定?
- docker - Openshift 环境中的 ASP.Net Core Web API (5.0)(错误:应用程序不可用)
- android - Xamarin Android 仅在 Android 10 上崩溃
- ssl-certificate - 如何为 P2P 系统创建(完整的)证书颁发机构
- postgresql - 如何在 AWS RDS 上启用 pgaudit 的 pgaudit.log_rows 参数
- visual-studio-code - PlantUML 包括来自 URL