You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter中先创建的Widget无法显示在窗体上的问题求助

Tkinter中先创建的Widget无法显示在窗体上的问题求助

大家好,我最近在用Tkinter做界面的时候碰到了一个百思不得其解的问题,想请各位帮忙分析下原因!

情况是这样的:我先创建了主窗体,接着做了一个Label(label1),然后创建了Notebook和对应的Frame,之后又做了另一个Label(label2)和Entry控件。最后我把所有控件都通过grid方法加到Frame里,并且指定了in_参数。结果发现,在Notebook之前创建的label1完全不显示,但Notebook之后创建的label2和Entry都正常工作,而且界面上label1的位置明明是空出来的,就是看不到它的内容。

我还特意打印了创建Notebook前后主窗体的id,结果是同一个值,说明窗体对象根本没变。那这个先创建的label1到底去哪了?怎么才能让它正常显示出来呢?

下面是我测试用的代码:

import tkinter
import tkinter.ttk as ttk

form = tkinter.Tk()
label1 = ttk.Label(form, text='Test Label 1')  # 这个控件不显示
notebook = ttk.Notebook(form)
notebook.pack(expand=True)
mainframe = ttk.Frame(notebook, padding='13 3 12 12')
notebook.add(mainframe, text='Test Page')
label2 = ttk.Label(form, text='Test Label 2')  # 这个控件正常显示
entry = ttk.Entry(form)

label1.grid(in_=mainframe, row=1, column=1)
label2.grid(in_=mainframe, row=2, column=1)
entry.grid(in_=mainframe, row=3, column=1)

form.mainloop()

(补充:我发现即使界面上预留了label1的位置空间,它也完全不显示。)

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:08:06