我正在尝试适应所有小部件,我有树框架:
第一帧: 有一个标签(需要有一个大字母大小的名称) 一个自定义组合框,用于在嵌入时更改标签的值 用于选择组合框的按钮
第二帧: 有一个树视图,其中包含一些信息,当我在一行中制作一个clic时,第三帧中会出现另一个树视图。这个树视图占据了所有框架
第三帧: 有三列: 第一行有两行: 拳头行两个按钮添加和删除,占用所有行。 第二行是占据所有空间的树视图。单击第一个树视图中的行时会出现此树视图,如何显示空树视图并在单击该行时填写。该功能是OnDoubleClick 第二栏: 有两个按钮必须位于行的中心。 第三栏: 与第一个相同,但与其他树视图相同。
这是我想要实现的目标的图像:
答案 0 :(得分:1)
我不打算重写你的整个程序,因为这是很多代码,但我会解释我解决问题的方法。如果你有条不紊和有条理,Tkinter布局非常简单,并且尝试一次只解决一个问题。
首先,您似乎有三个主要部分:顶部的工具栏,带树视图的中间部分和带有大量内容的底部部分。所以,我要做的第一件事是创建三个框架,每个部分一个。然后,我会像这样使用pack
:
toolbar.pack(side="top", fill="x")
main.pack(side="top", fill="both", expand=True)
bottom.pack(side="top", fill="both", expand=False)
这个非常简单。这三个小部件平等分布。您可以使用pack
或grid
,也可以正常使用。
这只是一个树视图,或者是带滚动条的树视图?同样,pack
或grid
可以通过如此简单的布局正常工作。
这个看起来由三个部分组成:左侧部分,中间部分和右侧部分。与主要布局一样,我将首先创建三个框架,所有框架都是之前创建的“底部”框架的子框架。然后,我会再次使用pack
,因为它是一个简单的水平布局:
left.pack(side="left", fill="both", expand=True)
middle.pack(side="left", fill="both", expand=False)
right.pack(side="left", fill="both", expand=True)
通过将expand=True
设置为左侧和右侧,如果窗口增大或缩小,当中间部分保持其自然大小时,这些也会增大或缩小。
这两个看起来都一样。看起来最简单的事情就是创建窗口小部件(即:不再有框架),然后使用grid
来布局它们。但是,如果用“按钮”表示你可以有几个,你可以为按钮创建一个框架,这样你就可以更容易地从左到右包装所有按钮。
您可以创建属于此框架子项的按钮,并使用grid
或pack
。