PyGTK-パンクラス
Panedクラスは、2つの調整可能なペインを水平方向(gtk.Hpaned)または垂直方向(gtk.Vpaned)に表示できるウィジェットの基本クラスです。ペインへの子ウィジェットは、pack1()およびpack2()メソッドを使用して追加されます。
パンウィジェットは、2つのペインの間にセパレータスライダーを描画し、相対的な幅/高さを調整するためのハンドルを提供します。ペイン内の子ウィジェットのサイズ変更プロパティがTrueに設定されている場合、ペインのサイズに応じてサイズが変更されます。
HPanedクラスとVPanedクラスでは、次のメソッドを使用できます。
Paned.add1(child)-これは、によって指定されたウィジェットを追加します。 child 上部または左側のペインに
Paned.add2(child)-これは、によって指定されたウィジェットを追加します。 child 下部または右側のペインに移動します。
Paned.pack1(child、resize、shrink)-これにより、で指定されたウィジェットが追加されます。 childパラメータを含む上部または左側のペインに移動します。場合resize です True、 childペインウィジェットのサイズを変更するときにサイズを変更する必要があります。場合shrink です True、 child 最小サイズの要求よりも小さくすることができます。
Paned.pack2(child、resize、shrink)-これは、2つのペイン間の仕切りの位置を設定します。
両方のタイプのパンウィジェットは、次の信号を発します-
受け入れ位置 | これは次の場合に発行されます paned フォーカスがあり、フォーカスのある子ウィジェットがアクティブになります。 |
キャンセルポジション | これは、 Esc キーを押しながら paned 焦点があります。 |
移動ハンドル | これは次の場合に発行されます paned フォーカスがあり、セパレータが移動します。 |
例
次の例では、gtk.Hpanedウィジェットを使用しています。左側のペインにTreeViewウィジェットが追加され、右側のペインにTextViewウィジェットがあります。TreeViewのいずれかの行を選択すると、コールバック関数に接続されたrow_activate信号が送信されます。ザ・on_activated()function 行のテキストを取得し、テキストビューパネルに表示します。
コードを観察する-
import gtk, gobject
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("HPaned widget Demo")
self.set_default_size(250, 200)
vp = gtk.HPaned()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
tree = gtk.TreeView()
languages = gtk.TreeViewColumn()
languages.set_title("GUI Toolkits")
cell = gtk.CellRendererText()
languages.pack_start(cell, True)
languages.add_attribute(cell, "text", 0)
treestore = gtk.TreeStore(str)
it = treestore.append(None, ["Python"])
treestore.append(it, ["PyQt"])
treestore.append(it, ["wxPython"])
treestore.append(it, ["PyGTK"])
treestore.append(it, ["Pydide"])
it = treestore.append(None, ["Java"])
treestore.append(it, ["AWT"])
treestore.append(it, ["Swing"])
treestore.append(it, ["JSF"])
treestore.append(it, ["SWT"])
tree.append_column(languages)
tree.set_model(treestore)
vp.add1(tree)
self.tv = gtk.TextView()
vp.add2(self.tv)
vp.set_position(100)
self.add(vp)
tree.connect("row-activated", self.on_activated)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_activated(self, widget, row, col):
model = widget.get_model()
text = model[row][0]
print text
buffer = gtk.TextBuffer()
buffer.set_text(text+" is selected")
self.tv.set_buffer(buffer)
if __name__ == '__main__':
PyApp()
gtk.main()
上記のコードは次の出力を生成します-