Как предотвратить потерю пространства GtkAspectFrame? - PullRequest
9 голосов
/ 23 марта 2012
<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 сотрудничать?

1 Ответ

0 голосов
/ 27 июня 2012

Я полагаю, что A должен быть расширен = истина, fill = true, а B должен быть расширен = ложь и fill = true.

...