PyGTK-レイアウトクラス

gtk.Layoutは、gtk.Fixedに似たコンテナウィジェットです。ウィジェットは、絶対座標を指定することによってレイアウトウィジェットに配置されます。ただし、レイアウトは次の点で固定ウィジェットとは異なります-

  • レイアウトウィジェットは、無限の幅と高さを持つことができます。幅と高さの最大値は、符号なし整数のサイズによって制限されます。

  • gtk.DrawingAreaウィジェットはレイアウトコンテナに含めることができます。DrawingAreaは、線や長方形などの2D要素を描画できるキャンバスです。

  • レイアウトコンテナをより小さなサイズのトップレベルウィンドウに配置するために、スクロールバーに関連付けるか、ScrolledWindowに配置することができます。

gtk.Layoutクラスには次のコンストラクターがあります-

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

ザ・ hadjustment そして vadjustment プロパティは、調整可能な境界値を持つオブジェクトを表します。

次の表に、頻繁に使用されるレイアウトの方法を示します。

put(widget、x、y) 指定された座標に子ウィジェットを配置します
set_size(w、h) レイアウトコンテナのサイズを指定された幅と高さに設定します

Layoutオブジェクトは、それに関連付けられた調整が変更されると、set_scroll_adjustment信号を発行します。

次の例では、ラベルはレイアウトコンテナの中央に配置され、レイアウトコンテナは小さいサイズのトップレベルウィンドウに配置されます。したがって、最初に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()

上記のコードは次の出力を生成します-