首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用网格的Python Tkinter布局管理

使用网格的Python Tkinter布局管理
EN

Stack Overflow用户
提问于 2013-05-09 19:05:45
回答 2查看 1.8K关注 0票数 0

有几天,我试图用Tkinter设置一个简单的应用程序,我有一些问题需要在框架和窗口小部件的pack、grid之间进行选择。

这是我的应用程序的样机。我决定删除两个按钮"Générer“,所以不要注意这一点。

http://www.gilawhost.com/images/taajvonq.png

我有3个框架: frameMatrix (用于复选框),frameImage (用于flashcode)和frameLink用于底部。

这些框架是用网格实现的。以链接部分(底部)为例,我有如下内容:

代码语言:javascript
复制
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帧放在一起。我的主要框架是

代码语言:javascript
复制
self.frame=Frame(root)

我试着像下面这样设置我的框架

代码语言:javascript
复制
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)

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

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-09 19:36:51

最简单的IMO方法是使用pack。Pack非常适合这种布局,在这种布局中,你可以用边框填充整个区域的边框。将小部件创建与小部件布局分开也更好(也可以说更容易)

例如:

代码语言:javascript
复制
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添加到这些小部件中的一个或多个,这取决于您希望的调整大小的行为。

票数 1
EN

Stack Overflow用户

发布于 2013-05-09 19:33:38

gridpackplace返回None

代码语言:javascript
复制
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

应该是:

代码语言:javascript
复制
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)

别忘了buttonLinkentryLink,...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16460284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档