yGTK库提供了不同的容器类来控制窗口小部件的放置。最简单的方法是使用固定的容器类,然后通过指定其绝对坐标(以像素为单位)将小部件放置在其中。
现在让我们遵循以下步骤-
步骤1-声明固定类的对象
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()
但是,由于以下原因,此绝对布局不适合-
- 即使调整窗口大小,小部件的位置也不会改变。
- 在具有不同分辨率的不同显示设备上,外观可能不一致。
- 布局修改很困难,因为可能需要重新设计整个表格。
下面是完整代码
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_default_size(300,200)
self.set_title("Hello World in PyGTK")
fixed=gtk.Fixed()
btn=gtk.Button("Hello World")
fixed.put(btn,100,100)
self.add(fixed)
self.show_all()
PyApp()
gtk.main() #run event loop
以下是原始窗口 -