2010-08-31 19 views
10

मेरे पास एक विंडो है जिसमें QScrollArea इसमें कुछ विजेट हैं।क्यूटी: अपनी नई सामग्री में विंडो का आकार कैसे बदलें

अब तक, मैं QScrollArea और अपने बच्चे के विगेट्स को अपनी खिड़की के निर्माता में बना रहा था, और फिर मैं resize(400, sizeHint().height()) का उपयोग करके अपनी सामग्री को फिट करने के लिए लंबवत विंडो का आकार बदल रहा था। अब तक सब ठीक है.

अब, मैं रनटाइम पर QScrollArea में विजेट जोड़ रहा हूं या निकाल रहा हूं। खिड़की को जोड़ने या हटाए जाने के बाद, विंडो को अपनी सामग्री को लंबवत रूप से फिट करने के लिए मुझे क्या करना चाहिए? क्या मुझे adjustSize() पर कॉल करना चाहिए? resize(sizeHint())? क्या layout->activate() या शायद updateGeometry() पर कॉल होना चाहिए? इस मामले में कौन सी आकार नीतियां वास्तव में मायने रखती हैं? खिड़की के, या स्क्रॉल क्षेत्र, या दोनों के? मैंने उन्हें सभी को Expanding पर सेट करने का प्रयास किया।

मैं विंडोज पर क्यूटी 4.6 का उपयोग कर रहा हूं।

+0

क्या आप QScrollArea को स्क्रॉलबार नहीं रखना चाहते हैं? –

+0

बिल्कुल, अभी विचार लंबवत स्क्रॉलबार से छुटकारा पाने के लिए है। अगला चरण यह केवल तभी दिखाई देगा जब QScrollArea सामग्री की कुल ऊंचाई वास्तव में बहुत बड़ी हो, या यदि उपयोगकर्ता विंडो का आकार बदलता है। –

उत्तर

9

ऐसा लगता है कि स्क्रॉल क्षेत्र में विजेट जोड़े जाने के बाद resize(sizeHint()) (बिना किसी अन्य जादू के) को कॉल करना वास्तव में चाल है। किसी भी तरह से पहली बार याद किया।

+1

मुझे इसे लंबवत समायोजन के लिए जरूरी था, और यह निकला: 'QSize s = sizeHint(); s.setWidth (चौड़ाई()); आकार बदलें; ' – Notinlist

+0

शायद यह किसी और की मदद करेगा जो इस प्रश्न को पाता है लेकिन इसके बजाय मेरी समस्या है। संवाद वास्तव में सामग्री के लिए आकार बदल रहा था, लेकिन क्यूटी डिजाइनर में खिड़की के आकार की वजह से यह नीचे कटा हुआ हो रहा था। क्यूटी डिजाइनर में खिड़की का आकार बदलने के लिए नीचे के लिए अधिक कमरे की अनुमति देने के लिए इसे मेरे लिए तय किया गया है – slf

संबंधित मुद्दे