PyGTK - 容器

PyGTK 库提供了不同的容器类来控制小部件在窗口内的放置。 最简单的方法是使用fixed 固定容器类,并通过指定以像素为单位的绝对坐标来放置小部件。

现在让我们按照以下步骤操作 −

步骤 1 − 声明一个 fixed 固定类的对象

fixed = gtk.Fixed()

步骤 2 − 创建一个按钮小部件,并使用需要 x 和 y 坐标的 put() 方法将其添加到固定容器中。 这里,按钮将放置在 (100,100) 位置。

btn = gtk.Button("Hello")
fixed.put(btn, 100,100)

步骤 3 − 您可以在固定容器中放置多个控件。 然后,将它添加到顶层窗口并调用 show_all() 方法

self.add(fixed)
self.show_all()

但是,由于以下原因,这种绝对布局并不适用 −

  • 即使调整窗口大小,小部件的位置也不会改变。
  • 在具有不同分辨率的不同显示设备上,外观可能不统一。
  • 布局的修改很困难,因为它可能需要重新设计整个表单。

以下是原始窗口

Hello World

以下是调整后的窗口

PyGTK Hello World

这里按钮的位置没有变化。

PyGTK API 提供容器类以增强对容器内小部件定位的管理。 与绝对定位相比,布局管理器的优势是 −

  • 窗口内的小部件会自动调整大小。
  • 确保在不同分辨率的显示设备上呈现统一的外观。
  • 无需重新设计即可动态添加或删除小部件。

gtk.Container 作为下面类的基类 −

  • gtk.ButtonBox
  • gtk.Box
  • gtk.Alignment
  • gtk.EventBox
  • gtk.Table