GTK+ 工具箱和它的 PyGTK 绑定包有一些便利的容器。如果只需将一组部件放在一起,水平的 gtk.HBox 或垂直的 gtk.VBox 通常就足够了。如果要同时在这两个方向上对齐,通常可以使用 gtk.Table。但是在某些情况下,您可能想通过设置一些更精细的需求来获得更好的外观。
通常,放置和调整部件大小并非计算密集型任务,但是可能涉及不同的因素和细节,需要多方考虑。因此,使用解释语言创建一个管理器,便可以快速尝试不同的方法和设置。本文描述的容器也许将鼓励 PyGTK 开发人员编写或改进其他的容器。另外,它也可能鼓励在其他 GUI 工具箱中实现类似的容器策略。
本文的主角 是一个用于创建图形用户界面的极易使用、功能丰富的工具箱。它的优势在于跨平台兼容性和易于使用的 API。GTK+ 是用 C 编写的,但是绑定了很多其他的流行编程语言,例如 C++、Python 和 C#。
是用于 Python 的 GTK+ — 它帮助您使用 Python 编程语言轻松创建具有图形用户界面的程序。
流行的对齐部件包括用于水平方向的 和用于垂直方向的 。
至于水平和垂直两个方向上的布局,可以考虑 。
关于表的权重让我们来看一个表容器的实现,在这个表容器中,行和列的像素大小可以通过指定的权重进行扩展。但是,在详细讨论之前,我们来看一些例子。
以下三个例子中的每个例子都有一组不同的按钮子集,并且有一个附件策略。对于每个例子,首先显示一个较小的像素空间,之后显示更大的像素空间。
- 这里有一个单独的按钮,其左边留出 20 个像素,并且平等共享按钮本身与其右空白之间的额外的水平像素空间。在垂直方向上,按照与(上边距,按钮本身,下边距)对应的(1,4,2)的比例分配额外空间。
图 1. 较小空间内的单个按钮 图 2. 较大空间内的单个按钮 - 现在我们有两个按钮,两者之间的大小比例为 2:3,额外水平空间比例为 1:3。
图 3. 较小空间内的两个按钮 图 4. 较大空间内的两个按钮 - 接下来是多列需求,我们希望 “middle7/8” 按钮获得 7/8 的额外 水平像素空间。
图 5. 较小空间内的多列需求 图 6. 较大空间内的多列需求
|