2011-10-20 17 views
5

मेरे पास एक Loader है जिसका उपयोग मैं एकाधिक स्क्रीन/पेज लोड कर रहा हूं।QML में डिस्प्ले से स्क्रीन/पेज को कैसे हटाएं/हटाएं?

मेरे पास लगभग 10 क्यूएमएल स्क्रीन/पेज हैं जिन्हें मैं लोडर में लोड कर रहा हूं, माउस ईवेंट पर एक-एक करके।

कुछ स्क्रीनों पर मुझे स्क्रीन/पेज का कुछ हिस्सा पारदर्शी बनाने और स्क्रीन छेद स्क्रीन बनाने के लिए QWidget::setMask() फ़ंक्शन का उपयोग करके पारदर्शिता सेट करने की आवश्यकता है।

मैं पर पर Loader स्क्रीन पर सीपीपी कोड से सेट मास्क कर रहा हूं, जो Loader स्क्रीन पर है।

QWidget::setMask पूरी तरह से काम कर रहा है, लेकिन मुखौटा क्षेत्र पहले लोड स्क्रीन/पेज प्रदर्शित करता है।

तो मैं सवाल है, Loader तत्व ठीक से हटा देता /, Loader में नए स्क्रीन/पेज लोड हो रहा है के रूप में दस्तावेजों http://doc.qt.nokia.com/4.7-snapshot/qml-loader.html में उल्लेख किया है से पहले प्रदर्शन से भरी हुई घटक को दूर करता है।

भी देखते हैं दो समारोह Component.onDestroyed और Component.onDestruction

नामित जब मैं लोडर onDestruction घटना में नए स्क्रीन/पृष्ठ लोड लोडेड स्क्रीन के लिए निकाल दिया हो रही है।

लोडर में नया पृष्ठ लोड करने के बाद मैं डिस्प्ले से स्क्रीन/पेज को पूरी तरह से निकालना/नष्ट करना चाहता हूं। मैंने पहले लोड की गई स्क्रीन की दृश्यता और अस्पष्टता सेट करने का भी प्रयास किया है, लेकिन फिर भी मैं मुखौटा क्षेत्र में पहले लोड की गई स्क्रीन/पेज को देख पा रहा हूं।

यदि मैं लोडर का source = "" और sourceComponent = undefined सेट करता हूं तो मैं लोडर में पिछले लोड किए गए पृष्ठ को भी देख सकता हूं, यह स्क्रीन को रीफ्रेश नहीं कर रहा है। पिछला पृष्ठ नष्ट हो गया है लेकिन इसे डिस्प्ले से साफ़/हटाया नहीं गया है।

कारण क्या होना चाहिए?

+0

बस स्पष्ट करने के लिए: आप एक सिंगल लोडर का उपयोग कर रहे हैं और अपनी स्रोत-संपत्ति को अपनी 10 स्क्रीन में से किसी एक में बदल सकते हैं? –

+0

मुझे एक ही समस्या है। क्या आपने इसे हल करने का प्रबंधन किया? – MokaT

उत्तर

0

आप C++ में QWidget::clearMask() समारोह का उपयोग करते समय लोड qml फ़ाइल में संकेत Component.onDestruction प्राप्त करने या जब Loader में onSourceChanged प्राप्त करने की कोशिश की है?