GUI

Python Tkinter 複雑なインターフェイスの整理 (4) Paned Windows

パンドウィンドウウィジェットは、サイズ変更可能なウィジェットを上下(または左右)に2つ以上重ねることができる。ユーザーは、ペインの間にあるサッシュをドラッグすることで、相対的な高さ(または幅)を調整できる。一般的に、ペインウィンドウに追加するウィジェットは、他の多くのウィジェットを含むフレーム。

パンドウィンドウは、ttk.Panedwindowクラスを使って作成する。

p = ttk.Panedwindow(parent, orient=VERTICAL)
f1 = ttk.Labelframe(p, text='Pane1', width=100, height=100)
f2 = ttk.Labelframe(p, text='Pane2', width=100, height=100)   
p.add(f1)
p.add(f2)

パンドウィンドウは、縦型(ペインが垂直に重なっている)または横型のいずれか。重要なのは、panedwindow に追加する各ペインは、panedwindow 自体の直接の子でなければならないこと。

add メソッドを呼び出すと、新しいペインがペイン リストの最後に追加される。insert position subwindow メソッドを使用すると、ペインをペイン一覧の指定された位置(0 ~ n-1)に配置できる。ペインがすでに panedwindow で管理されている場合は、新しい位置に移動される。forget サブウィンドウを使用すると、ペインをペインドウィンドウから削除できる (サブウィンドウの代わりに位置を渡すこともできる)。

各ペインに相対的な重みを設定することで、パネルウィンドウ全体のサイズを変更したときに、特定のペインに他のペインよりも多くのスペースを割り当てることができる。また、パネルウィンドウのアイテム間の各サッシの位置を調整できる。詳しくは、コマンドリファレンスを参照してください。