2013-10-25 7 views
7

मैं क्या समझ से, एक संपत्ति बनाने के लिए QML में एक सरणी आप इसे प्रकार variant या var के रूप में उल्लेख करना होगा:वही बात "var" और "variant" हैं?

property var myArray:[]

और यह ठीक वही होना प्रतीत होता है:

property variant myArray:[]

क्या यह सच है?

उत्तर

9

Qt 5.0 variant documentation के अनुसार:

संस्करण प्रकार एक सामान्य संपत्ति प्रकार है। यह अप्रचलित है और केवल पुराने अनुप्रयोगों का समर्थन करने के लिए मौजूद है; नए अनुप्रयोगों को इसके बजाय var प्रकार गुणों का उपयोग करना चाहिए।

तो हाँ, यह वही है, लेकिन आपको हमेशा var तक चिपकना चाहिए (जब तक कि आपको पहले का संस्करण नहीं मिला जो अभी तक इसका समर्थन नहीं करता)।

+0

धन्यवाद; क्या मैं सही हूं कि 'var' का उपयोग करके सरणी गुण बनाने का एकमात्र तरीका है? – johnbakers

+0

कम से कम एकमात्र तरीका मुझे –

+1

पता है यह वास्तव में प्रलेखन है; मुझे आश्चर्य है कि QtCreator (3.6.1 के रूप में) किसी भी तरह से उपयोगकर्ता को चेतावनी नहीं देता है कि 'variant' को बहिष्कृत किया गया है। –

3

यह एक पूरी तरह से नए जवाब नहीं है, लेकिन @Tim मेयेर द्वारा प्रदान की जवाब है, मेरे अपने अनुभव के आधार पर के बारे में अतिरिक्त जानकारी होती है:

  1. क्यूटी 4. के साथ * या QtQuick 1. *, property variant है अन्यथा QML पार्सिंग त्रुटियों का उपयोग किया जाएगा।
  2. क्यूटी 5 या QtQuick 2. * के साथ, या तो property variant या property var का उपयोग किया जा सकता है। लेकिन बाद वाले व्यक्ति की सिफारिश की जाती है, क्योंकि पूर्व को हटा दिया जा रहा है।
  3. क्यूटी 4 property variant या क्यूटी 5 property var का उपयोग क्यूएमएल सरणी या सूची घोषणा/परिभाषा के लिए किया जा सकता है। लेकिन अगर myArray का प्रकार और अपरिवर्तनीय सामग्री अग्रिम में ज्ञात है, तो property list<Type> का भी उपयोग किया जा सकता है।

    संपत्ति सूची < Item> myArray: उदाहरण के लिए: [आइटम {}, मद {}]

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