PyGTK 容器
PyGTK库提供了不同的容器类,用于控制窗口中小部件的放置。最简单的方法是使用一个 固定容器类 ,并通过指定以像素为单位的绝对坐标来将小部件放置在其中。
现在让我们按照以下步骤进行操作:
步骤1 - 声明一个 固定类 的对象
fixed = gtk.Fixed()
步骤2 - 创建一个按钮小部件,并使用 put() 方法将其添加到固定容器中,该方法需要x和y坐标。在这里,按钮将被放置在(100,100)位置。
btn = gtk.Button("Hello")
fixed.put(btn, 100,100)
步骤3 - 您可以在固定容器中放置多个控件。并且,将其添加到顶级窗口并调用 show_all() 方法
self.add(fixed)
self.show_all()
然而,由于以下原因,这种绝对布局并不适合使用:
- 小部件的位置在窗口调整大小时不会改变。
- 在不同分辨率的不同显示设备上,外观可能不一致。
- 修改布局困难,可能需要重新设计整个表单。
以下是 原始窗口 −
以下是 调整大小后的窗口 −
这里按钮的位置不变。
PyGTK API 提供了用于增强容器内部小部件定位管理的容器类。相对于绝对定位,布局管理器的优势有:
- 窗口内的小部件会自动调整大小。
- 确保在不同分辨率的显示设备上统一外观。
- 可以动态添加或删除小部件,无需重新设计。
gtk.Container 作为以下类的基类:
- gtk.ButtonBox
- gtk.Box
- gtk.Alignment
- gtk.EventBox
- gtk.Table