0

几天来,我正在尝试使用 Tkinter 设置一个简单的应用程序,但在我的框架和小部件的包、网格之间选择时遇到了一些问题。

这是我的应用程序的模型。我决定删除“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)

如果你能帮助我,我尝试了其他几件事,但没有一个是正确的使用上面的代码,框架重叠,就像每个框架的网格相同。

谢谢

4

2 回答 2

1

最简单的 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-09T11:36:51.010 回答
0

gridpack然后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, ...

于 2013-05-09T11:33:37.857 回答