有几天,我试图用Tkinter设置一个简单的应用程序,我有一些问题需要在框架和窗口小部件的pack、grid之间进行选择。
这是我的应用程序的样机。我决定删除两个按钮"Générer“,所以不要注意这一点。
http://www.gilawhost.com/images/taajvonq.png
我有3个框架: frameMatrix (用于复选框),frameImage (用于flashcode)和frameLink用于底部。
这些框架是用网格实现的。以链接部分(底部)为例,我有如下内容:
labelLink = LabelFrame(frameLink, text='Mini Lien', padx=5, pady=5)
labelMiniLien = Label(frameLink, text = "http://minilien.fr/").grid(row=0, column=0)
entryLink = Entry(frameLink, text=self.flashcode.lien).grid(row=0, column=1)
buttonLink = Button(frameLink, text="Suivre le lien").grid(row=0, column=2)然而,我不知道如何把我的3帧放在一起。我的主要框架是
self.frame=Frame(root)我试着像下面这样设置我的框架
frameMatrix=Frame(self.frame).grid(row=0, column=0)
frameImage=Frame(self.frame).grid(row=0, column=1)
frameLink=Frame(self.frame).grid(row=1, column=0, columnspan=2)如果你能帮助我,我尝试了其他几件事,但上面的代码没有什么是正确的,如果每个框架的网格是相同的,框架重叠。
谢谢
发布于 2013-05-09 19:36:51
最简单的IMO方法是使用pack。Pack非常适合这种布局,在这种布局中,你可以用边框填充整个区域的边框。将小部件创建与小部件布局分开也更好(也可以说更容易)
例如:
frameLine = Frame(...)
frameMatrix = Frame(...)
frameImage = Frame(...)
...
frameLink.pack(side="bottom", fill="x")
frameMatrix.pack(side="left", fill="both")
frameImage.pack(side="right", fill="both")您可能希望将expand=True添加到这些小部件中的一个或多个,这取决于您希望的调整大小的行为。
发布于 2013-05-09 19:33:38
grid、pack和place返回None。
frameMatrix=Frame(self.frame).grid(row=0, column=0) # frameMatrix is None
frameImage=Frame(self.frame).grid(row=0, column=1) # frameImage is None
frameLink=Frame(self.frame).grid(row=1, column=0, columnspan=2) # frameLink is None应该是:
frameMatrix=Frame(self.frame)
frameImage=Frame(self.frame)
frameLink=Frame(self.frame)
frameMatrix.grid(row=0, column=0)
frameImage.grid(row=0, column=1)
frameLink.grid(row=1, column=0, columnspan=2)别忘了buttonLink,entryLink,...
https://stackoverflow.com/questions/16460284
复制相似问题