<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 ए। मैं इसे अपनी खिड़की के भीतर जितना संभव हो उतना बड़ा होना चाहता हूं, इसलिए मैंने ए से TRUE
की संपत्ति सेट की है। हालांकि, जब खिड़की की ऊंचाई की तुलना में अधिक चौड़ाई होती है, तो मुझे ड्राइंग क्षेत्र द्वारा उपयोग की जाने वाली शेष चौड़ाई को भरने के लिए विजेट, बी चाहिए। असल में, मैं यह चाहता हूँ:मैं एक जीटीकेएस्पेक्ट फ्रेम को अंतरिक्ष बर्बाद करने से कैसे रोकूं?
+--------------------+
|+-----------++-----+|
|| || ||
|| A || B ||
|| || ||
|| || ||
|+-----------++-----+|
+--------------------+
लेकिन मैं बजाय इस मिल (यदि बीFALSE
करने के लिए expand
सेट है):
+--------------------+
|+-----------+ +-+|
|| | | ||
|| A | |B||
|| | | ||
|| | | ||
|+-----------+ +-+|
+--------------------+
या यह (बीTRUE
करने के लिए expand
सेट है) :
+--------------------+
|+-------++---------+|
|| || ||
|| A || B ||
|| || ||
|+-------+| ||
| +---------+|
+--------------------+
मैं जीटीके को सह कैसे प्राप्त करूं संचालित?
मुझे जीटीके +3 या जीटीकेबिल्डर नहीं पता है, लेकिन आपको शायद 'gtk_widget_get_preferred_width_for_height() 'की दिशा में खोदना चाहिए। कोई विचार नहीं है कि यह एक्सएमएल से करने योग्य है या यदि कोई आसान तरीका है। – doublep