<interface>
<object class='GtkWindow' id='window'>
<child>
<object class='GtkBox' id='box'>
<property name='orientation'>horizontal</property>
<child>
<object class='GtkAspectFrame' id='aspect_frame'>
<property name='xalign'>0.0</property>
<property name='yalign'>0.0</property>
<child>
<object class='GtkDrawingArea' id='drawing_area_A'>
<property name='expand'>TRUE</property>
</object>
</child>
</object>
</child>
<child>
<!-- widget B goes here -->
</child>
</object>
</child>
</object>
</interface>
Приведенное выше GtkBuilder Определение пользовательского интерфейса создает квадрат DrawingArea A . Я хочу, чтобы оно было как можно большим в пределах его окна, поэтому я установил для свойства expand
A значение TRUE
. Однако, когда само окно имеет большую ширину, чем высота, я хочу, чтобы виджет B заполнил оставшуюся ширину, не используемую областью рисования. В основном, я хочу это:
+--------------------+
|+-----------++-----+|
|| || ||
|| A || B ||
|| || ||
|| || ||
|+-----------++-----+|
+--------------------+
Но вместо этого я получаю это (если B имеет expand
, установленный на FALSE
):
+--------------------+
|+-----------+ +-+|
|| | | ||
|| A | |B||
|| | | ||
|| | | ||
|+-----------+ +-+|
+--------------------+
Или вот это (если B имеет expand
, установленный на TRUE
):
+--------------------+
|+-------++---------+|
|| || ||
|| A || B ||
|| || ||
|+-------+| ||
| +---------+|
+--------------------+
Как заставить GTK сотрудничать?