1

我遇到了一个 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)
4

2 回答 2

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)

一旦定义了宽度和高度,框架就会很好地显示出来。如果您发布一些框架的内容,如果这不是问题,它可能会更清楚。

于 2012-04-26T02:40:03.113 回答
2

在 Tkinter 中,典型的工作流程是创建一个小部件,然后使用一些几何管理器将其放置在两条单独的行上

如果我没记错的话,.gridTkinter 小部件上的方法返回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...

于 2012-04-26T03:20:45.683 回答