2010-06-01 15 views
5

हमारे द्वारा विकसित क्यूटी एप्लिकेशन में हमें कई 'व्यूअर विंडो' प्रदर्शित करने की आवश्यकता है (एक्सवाई प्लेन, वाईएक्स प्लेन, एक्सजेड प्लेन और 3 डी में डेटा प्रदर्शित करने के लिए)।एमडीआई मॉडल या डॉक विंडोज़?

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

डॉक विंडो का उपयोग करने का एकमात्र संभव तरीका है क्योंकि उन्हें मुख्य एप्लिकेशन विंडो से अनदेखा किया जा सकता है और अन्य डेस्कटॉप में स्थानांतरित किया जा सकता है, लेकिन डॉक विंडोज प्राथमिक उपकरण-पैलेट या उपयोगिता विंडो के लिए उपयोग किया जाता है।

(http://doc.qt.nokia.com/4.6/qdockwidget.html#details)

यह हमारी आवश्यकता के लिए डॉक विंडो का उपयोग करने के लिए एक अच्छा अभ्यास है?

+0

क्या आपने समस्या हल की है? – Beachwalker

+0

हां, बस माता-पिता के साथ QWidgets का उपयोग किया जाता है। Windows (QWidgets) की सूची रखने के लिए संदर्भ प्रबंधित करने के लिए है और इन संदर्भों को सिंक्रनाइज़ करने के लिए उपयोग किया है। –

उत्तर

3

मैं QDockWindow का उपयोग नहीं करता क्योंकि ऐसा लगता है कि आप क्लाइंट क्षेत्र का उपयोग नहीं करेंगे। इसके अलावा, आप मेनविंडो सीमाओं पर डॉकिंग नहीं करना चाहते हैं, लेकिन विजेट को मेनविंडो में जोड़ा है।

मुझे लगता है कि आप QGridLayout के साथ एकाधिक QWidget का उपयोग करने का प्रयास कर सकते हैं। मेनविंडो के बाहर QWidget खींचते समय, बस लेआउट से QWidget को हटा दें। MainWindow के अंदर खींचते समय QGidLayout में QWidget को सही जगह पर जोड़ें। इस विधि के साथ आप विजेट विंडो को मुख्य विंडो में भी स्विच कर सकते हैं।

मुझे नहीं पता कि यह पर्याप्त स्पष्ट है या नहीं, लेकिन मैं लेआउट में नए तत्वों को खींचते समय QtDesigner में ऐसा ही कर रहा हूं। विजेट खींचते समय आप उस स्थान को देख सकते हैं जहां माउस बटन जारी करते समय इसे जोड़ा जाएगा।

मेरे दिमाग में यह तरीका वह हो सकता है जिसे आप खोज रहे हैं।

आशा है कि

+0

उत्तर के लिए बहुत बहुत धन्यवाद! मैं आपके द्वारा सुझाए गए तरीके को लागू करने की कोशिश करूंगा। लेकिन ऐसा लगता है कि इसे कुछ स्मार्ट हैक्स की जरूरत है। मुझे QGridLayout के साथ एसडीआई मॉडल के साथ जाना होगा, लेकिन मैं माता-पिता के बिना QWidgets को कैसे प्रदर्शित कर सकता हूं? –

+2

यदि कोई विजेट नहीं है, तो यह एक स्टैंड स्टैंड विंडो बन जाता है जैसा कि QWidget के विस्तृत विवरण में समझाया गया है: http://doc.qt.nokia.com/4.6/qwidget.html#details –

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