在 PyGTK 中管理部件几何结构

来源:互联网 发布:get请求 数据体 编辑:程序博客网 时间:2024/04/28 12:07
GTK+ 中有一些容器小部件,通过使用该工具箱的 API,可以创建用户定义的容器。在 PyGTK 中也公开了这个 API。在本文中,学习如何在 PyGTK 中创建一个“权重表(weighted-table)” 容器。本文的实现介绍了 GTK+ 几何结构管理的基本模型,并让您大致了解实现容器部件时应该考虑哪些事项。

GTK+ 工具箱和它的 PyGTK 绑定包有一些便利的容器。如果只需将一组部件放在一起,水平的 gtk.HBox 或垂直的 gtk.VBox 通常就足够了。如果要同时在这两个方向上对齐,通常可以使用 gtk.Table。但是在某些情况下,您可能想通过设置一些更精细的需求来获得更好的外观。

通常,放置和调整部件大小并非计算密集型任务,但是可能涉及不同的因素和细节,需要多方考虑。因此,使用解释语言创建一个管理器,便可以快速尝试不同的方法和设置。本文描述的容器也许将鼓励 PyGTK 开发人员编写或改进其他的容器。另外,它也可能鼓励在其他 GUI 工具箱中实现类似的容器策略。

本文的主角GTK+ 是一个用于创建图形用户界面的极易使用、功能丰富的工具箱。它的优势在于跨平台兼容性和易于使用的 API。GTK+ 是用 C 编写的,但是绑定了很多其他的流行编程语言,例如 C++、Python 和 C#。PyGTK 是用于 Python 的 GTK+ — 它帮助您使用 Python 编程语言轻松创建具有图形用户界面的程序。流行的对齐部件包括用于水平方向的 gtk.HBox 和用于垂直方向的 gtk.VBox。至于水平和垂直两个方向上的布局,可以考虑 gtk.Table。

关于表的权重

让我们来看一个表容器的实现,在这个表容器中,行和列的像素大小可以通过指定的权重进行扩展。但是,在详细讨论之前,我们来看一些例子。

以下三个例子中的每个例子都有一组不同的按钮子集,并且有一个附件策略。对于每个例子,首先显示一个较小的像素空间,之后显示更大的像素空间。

  1. 这里有一个单独的按钮,其左边留出 20 个像素,并且平等共享按钮本身与其右空白之间的额外的水平像素空间。在垂直方向上,按照与(上边距,按钮本身,下边距)对应的(1,4,2)的比例分配额外空间。图 1. 较小空间内的单个按钮较小空间内的单个按钮 图 2. 较大空间内的单个按钮较大空间内的单个按钮
  2. 现在我们有两个按钮,两者之间的大小比例为 2:3,额外水平空间比例为 1:3。图 3. 较小空间内的两个按钮

本文转自IBM Developerworks中国

        请点击此处查看全文