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提供了容器类,用于加强对容器内小部件的定位管理。与绝对定位相比,布局管理器的优势在于 −
- 窗口内的小部件会自动调整大小。
- 保证了在不同分辨率的显示设备上的统一外观。
- 可以动态地添加或删除widget,而不需要重新设计。
gtk.Container作为以下类的基类-
- gtk.ButtonBox
- gtk.Box
- gtk.Alignment
- gtk.EventBox
- gtk.Table