2016-08-07 8 views
5

क्यूएमएल प्रकार Component और Instantiator समान चीजें करने लगते हैं; मांग पर QML ऑब्जेक्ट्स बनाएं, क्योंकि उनकी परिभाषाओं को पार करते समय। तो क्या अंतर है? मैं दूसरे पर एक का उपयोग क्यों करना चाहूंगा?क्यूएमएल के घटक और इंस्टेंटेटर के बीच अंतर?

उत्तर

2

एक Instantiator दिए गए Component के उदाहरण बनाता है - model में दिए गए प्रत्येक मॉडल-एंट्री के लिए एक। यह पुनरावर्तक के समान है।

Component एक कक्षा है। एक Instantiator दिए गए घटक के लिए एक फैक्टरी की तरह है।

+0

लेकिन क्या मैं 'इंस्टेंटेटर' के बिना 'घटक' के उदाहरण नहीं बना सकता? – JesseTG

+0

कई संभावनाएं हैं, चुनें कि कौन सा आपके लिए सबसे अच्छा फिट बैठता है: आप एक ही उदाहरण के लिए एक ['लोडर'] (http://doc.qt.io/qt-5/qml-qtquick-loader.html) का उपयोग कर सकते हैं , एक ['पुनरावर्तक '] (http://doc.qt.io/qt-4.8/qml-repeater.html) कई उदाहरणों के लिए। चूंकि QtQml2.2 में भी ['Instantiator '] (http://doc.qt.io/qt-5/qml-qtqml-instantiator.html) है जो एक पुनरावर्तक है जो असीमित रूप से लोड हो सकता है। आप 'Component.createrObject()' या 'Component.incubateObject()' का उपयोग भी कर सकते हैं जो प्रत्येक 'आइटम' –

+0

से जुड़ा हुआ है आप ऑब्जेक्ट के प्रोटोटाइप के रूप में 'घटक' की कल्पना कर सकते हैं। 'सी ++' में 'क्लास MyClass {}' की तरह। 'Instantiator' एक असली वस्तु है जो आइटम बनाती है। तो इन वस्तुओं को 'Instantiator' के लिए parented हैं। जब आप 'घटक' के * इंस्टेंस * बनाते हैं तो आपको माता-पिता को सेट करना चाहिए। – folibis

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