PyGTK - 佈局類



gtk.Layout是一個類似於gtk.Fixed的容器小部件。透過指定絕對座標,將小部件放置在Layout小部件中。但是,Layout與固定小部件的不同之處在於:

  • 佈局小部件可以具有無限的寬度和高度。寬度和高度的最大值受無符號整數大小的限制。

  • gtk.DrawingArea小部件可以包含在佈局容器中。DrawingArea是一個畫布,可以在其上繪製線條、矩形等二維元素。

  • 為了將Layout容器放入尺寸較小的頂級視窗,可以將其與捲軸關聯,或者將其放置在ScrolledWindow中。

gtk.Layout類具有以下建構函式:

gtk.Layout(hadjustment = None, vadjustment = None)

hadjustmentvadjustment屬性表示具有可調整邊界值的物件。

下表列出了Layout常用的方法:

put(widget, x, y) 將子部件放置在指定的座標處
set_size(w, h) 將Layout容器的大小設定為指定的寬度和高度

當與其關聯的調整值發生更改時,Layout物件會發出set_scroll_adjustment訊號。

示例

在下面的示例中,一個標籤放置在Layout容器的中心,該容器又將放置在一個較小的頂級視窗中。因此,它首先被新增到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()

以上程式碼將生成以下輸出:

Layout
廣告
© . All rights reserved.