我遇到了tkinter程序的问题,我让LabelFrame分组了一组标签和条目,但是,它没有对我的小部件进行分组。我对LabelFrame的代码如下:
(编辑:我设法让标签显示,但是,它没有对我的小部件进行分组。)
root=Tk()
message_frame=LabelFrame(root,text="testing",padx=0,pady=0,width=100,height=100).grid(padx=5,pady=10)
message_label=Label(message_frame,text="Message").grid(row=1,column=0,sticky=W)
pub_label=Label(message_frame,text="Public Key").grid(row=2,column=0,sticky=W)
priv_label=Label(message_frame,text="Public Key").grid(row=3,column=0,sticky=W)
message_entry=Entry(message_frame,textvariable=message,width=50).grid(row=1,column=1,sticky=W)
pub_entry=Entry(message_frame,textvariable=pub_key,width=50).grid(row=2,column=1,sticky=W)
priv_entry=Entry(message_frame,textvariable=private_key,width=50).grid(row=3,column=1,sticky=W)
答案 0 :(得分:2)
为框架提供一些尺寸属性:
from Tkinter import *
root = Tk()
message_frame = LabelFrame(root,text="testing",padx=0,pady=0,width=100,height=100).grid(row=0,column=0,padx=5,pady=10)
定义宽度和高度后,框架显示正常。 如果您发布了一些框架的内容,如果不是问题,可能会更清楚。
答案 1 :(得分:2)
在Tkinter中,典型的工作流程是创建一个小部件,然后使用某个几何管理器 在两个单独的行 上放置它。
如果我没弄错,Tkinter小部件上的.grid
方法会返回None
。因此,如果您在创建它之后立即print message_frame
,您可能会看到它是None
。当你使用传递给下一个小部件时,他们假设你想把它放在根小部件上......
简单的解决方法是执行以下操作:
message_frame=LabelFrame(root,text="testing",padx=0,pady=0,width=100,height=100)
message_frame.grid(row=0,column=0)
你可能想对所有小部件做同样的事情,因为我怀疑你真的想要pub_label
= priv_label
= None
......