PyGTK - Layout 类

  • 简述

    gtk.Layout 是一个类似于 gtk.Fixed 的容器小部件。通过指定绝对坐标将小部件放置在 Layout 小部件中。但是,布局与固定小部件的不同之处在于以下方面 -
    • 布局小部件可以有无限的宽度和高度。宽度和高度的最大值受无符号整数大小的限制。
    • gtk.DrawingArea 小部件可以包含在布局容器中。 DrawingArea 是一个画布,可以在其上绘制线条、矩形等 2D 元素。
    • 为了将 Layout 容器放在较小尺寸的顶层窗口中,它可以与滚动条相关联,也可以放在 ScrolledWindow 中。
    gtk.Layout 类具有以下构造函数 -
    
    gtk.Layout(hadjustment = None, vadjustment = None)
    
    hadjustmentvadjustment 属性表示具有可调整边界值的对象。
    下表列出了布局的常用方法-
    put(widget, x, y) 将子部件放置在指定坐标处
    set_size(w, h) 将 Layout 容器的大小设置为指定的宽度和高度
    当与之关联的调整发生变化时,Layout 对象会发出 set_scroll_adjustment 信号。
  • 示例

    在以下示例中,Label 位于布局容器的中心,而布局容器又将放置在较小尺寸的顶层窗口中。因此,它首先添加到 ScrolledWindow,然后将 ScrolledWindow 添加到主窗口。
    观察代码-
    
    import gtk
    class PyApp(gtk.Window):
       
       def __init__(self):
          super(PyApp, self).__init__()
          self.set_title("layout")
          self.set_size_request(300,200)
          self.set_position(gtk.WIN_POS_CENTER)
          sc = gtk.ScrolledWindow()
          lo = gtk.Layout()
          lo.set_size(400,400)
          button = gtk.Button("Press Me")
          lo.put(button, 125,200)
          sc.add(lo)
          self.add(sc)
          self.connect("destroy", gtk.main_quit)
          self.show_all()
    PyApp()
    gtk.main()
    
    上面的代码会产生如下输出 -
    布局