Pygtk-box-class
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()
このメソッドは、ボックスの開始を参照してパックされたボックスに*子*を追加します-
pack_start(child, expand = True, fill = True, padding = 0)
以下はパラメータです-
- 子-これはボックスに追加されるウィジェットオブジェクトです
- expand -子にボックス内の余分なスペースを与える場合、これはTrueに設定されます。 余分なスペースは、すべての子*ウィジェット*に分割されます。
- fill -Trueの場合、追加のスペースが子に割り当てられます。 それ以外の場合、このパラメーターはパディングとして使用されます。
- padding -これは、ボックス内のウィジェット間のピクセル単位のスペースです。
gtk_box_pack_end()
これにより、ボックスの末尾への参照でパックされたボックスに子が追加されます。
pack_end (child, expand = True, fill = True, padding = 0)
以下はパラメータです-
- 子-これは追加されるウィジェットオブジェクトです
- expand -子にボックス内の余分なスペースを与える場合、これはTrueに設定されます。 この余分なスペースは、すべての子ウィジェット間で分割されます。
- fill -Trueの場合、追加のスペースが子に割り当てられます。
- padding -これは、ボックス内のウィジェット間のピクセル単位のスペースです。
- set_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()
上記のコードは、次の出力を生成します-