PyGTK-ボックスクラス

gtk.Boxクラスは、ウィジェットが長方形の領域に配置されるコンテナーの機能を定義する抽象クラスです。gtk.HBoxおよびgtk.VBoxウィジェットはそれから派生しています。

gtk.Hboxの子ウィジェットは、同じ行に水平に配置されます。一方、gtk.VBoxの子ウィジェットは、同じ列に垂直に配置されます。

gtk.Boxクラスは次のコンストラクターを使用します-

gtk.Box(homogenous = True, spacing = 0)

同種プロパティはデフォルトでTrueに設定されています。その結果、すべての子ウィジェットに均等に割り当てられます。

gtk.Boxは、パッキングメカニズムを使用して、開始または終了のいずれかを参照して、特定の位置を参照して子ウィジェットを配置します。pack_start()メソッドは、ウィジェットを最初から最後まで配置します。それどころか、pack_end()メソッドはウィジェットを最後から最初まで配置します。または、pack_start()と同様のadd()メソッドを使用することもできます。

次のメソッドは、gtk.HBoxおよびgtk.VBoxで使用できます。

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start()

このメソッドは追加します child ボックスの開始を参照してパックされたボックスへ-

pack_start(child, expand = True, fill = True, padding = 0)

以下はパラメータです-

  • child −これはボックスに追加されるウィジェットオブジェクトです

  • expand−子にボックス内に追加のスペースを与える場合、これはTrueに設定されます。余分なスペースはすべての子供の間で分割されますwidgets

  • fill− Trueの場合、追加のスペースが子に割り当てられます。それ以外の場合、このパラメーターはパディングとして使用されます。

  • padding −これは、ボックス内のウィジェット間のピクセル単位のスペースです。

gtk_box_pack_end()

これにより、ボックスの終わりを参照してパックされた子がボックスに追加されます。

pack_end (child, expand = True, fill = True, padding = 0)

以下はパラメータです-

  • child −これは追加するウィジェットオブジェクトです

  • expand−子にボックス内に追加のスペースを与える場合、これはTrueに設定されます。この余分なスペースは、すべての子ウィジェット間で分割されます。

  • fill − Trueの場合、追加のスペースが子に割り当てられ、それ以外の場合はパディングとして使用されます。

  • padding −これは、ボックス内のウィジェット間のピクセル単位のスペースです。

set_spacing (spacing) ボックスの子の間に配置するピクセル数を設定する関数です。

メソッド add (widget)gtk.Containerクラスから継承されます。ウィジェットをコンテナに追加します。このメソッドは、pack_start()メソッドの代わりに使用できます。

以下の例では、トップレベルウィンドウに垂直ボックス(gtk.VBoxオブジェクトボックス)が含まれています。次に、VBoxオブジェクトvbとHBoxオブジェクトhbがあります。上のボックスには、ラベル、エントリウィジェット、ボタンが縦に配置されています。下のボックスには、ラベル、エントリ、ボタンの別のセットが垂直に配置されています。

次のコードを確認してください-

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
         self.set_title("Box demo")
		
      box = gtk.VBox()
      vb = gtk.VBox()
      lbl = gtk.Label("Enter name")
		
      vb.pack_start(lbl, expand = True, fill = True, padding = 10)
      text = gtk.Entry()
		
      vb.pack_start(text, expand = True, fill = True, padding = 10)
      btn = gtk.Button(stock = gtk.STOCK_OK)
		
      vb.pack_start(btn, expand = True, fill = True, padding = 10)
      hb = gtk.HBox()
		
      lbl1 = gtk.Label("Enter marks")
      hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
      text1 = gtk.Entry()
		
      hb.pack_start(text1, expand = True, fill = True, padding = 5)
      btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
		
      hb.pack_start(btn1, expand = True, fill = True, padding = 5)
      box.add(vb)
      box.add(hb)
      self.add(box)
      self.show_all()
PyApp()
gtk.main()

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