状態に応じてサブウィジェットの選択が含まれる GtkVBox から派生したカスタム ウィジェットがあります。このカスタム ウィジェットのすべてのインスタンスを同じ高さにし、サブウィジェットが常にこのカスタム ウィジェット内の同じ位置に配置されるようにします。取り上げられて空になっていることが示されます。
たとえば、最大 4 つのボタンを含む GtkVBox を考えてみましょう。ただし、最初と最後のボタンしか表示されない場合があります。最初のボタンと最後のボタンの間には、2 番目と 3 番目のボタンが表示される場合に必要なスペースに対応する空の垂直スペースが必要です。つまり、間に同じサイズのプレースホルダーがあります。
私が理解している限り、2つのオプションがあります。
- GtkFixed をコンテナーとして使用し、すべてのポジショニングとサイズ変更のコードを自分で行うこともできます
- または、偽のボタンを作成し、そこからサイズ要求を取得してから、ダミー ウィジェットを追加することもできます。
2 番目のオプションはかなりハックですが、かなりの量のコードを書く必要がなくなります。これには何か欠点がありますか? それをどのように行いますか、その理由、より良いアイデアはありますか?