Gladeウィジェットツリーでウィジェットを並べ替える方法を教えてください。
たとえば、次の部分的なツリーを含むGladeアプリケーションがあるとします。
box1 (GtkBox)
|--button1 (GtkButton)
|--button2 (GtkButton)
|--button3 (GtkButton)
どのようにして位置を入れ替えることができますか?たとえば、button1 button2、そのため、button2はUIでbutton1の上にありますか?
さらに調査したところ、ウィジェットツリーパネルから順序を変更できないようです。ただし、ビジュアルエディタで順序を変更することはできます。
ツールバーには、カーソルモードを選択するためのボタンが2つあります。カーソルの直後のボタンをクリックします。矢印が4つあるはずです。次に、移動するウィジェットをクリックし、移動先にドラッグします。
これに遭遇し、受け入れられた答えが間違っているか、少なくともGladeの現在のバージョンでは正しくないことがわかりました。
Glade内から、Position
タブのPacking
プロパティを調整できます。このプロパティの値は、その親内のウィジェットのインデックスを決定します。
OPの例では:
box1 (GtkBox)
|--button1 (GtkButton) (Position: 0)
|--button2 (GtkButton) (Position: 1)
|--button3 (GtkButton) (Position: 2)
各ボタンのPosition
値はそれぞれ0、1、2です。 Position
の値を変更する場合、button2
を0にすると、上に移動し、button1
の場合、Position
値は1になり、ツリー内の順序と、デザイナーと最終的なアプリケーションでの表示方法の両方が変更されます。
box1 (GtkBox)
|--button2 (GtkButton) (Position: 0)
|--button1 (GtkButton) (Position: 1)
|--button3 (GtkButton) (Position: 2)