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
相关产品推荐
相关产品推荐

