QPersistentModelIndexes
उन वस्तुओं के लिए (पंक्ति, कॉलम, अभिभावक) संदर्भ हैं जो नियमित रूप से अपडेट किए जाते हैं जब संदर्भित आइटम मॉडल के अंदर स्थानांतरित होते हैं, नियमित QModelIndex
के विपरीत।
उदाहरण के लिए, यदि आप एक पंक्ति डालते हैं, तो सम्मिलन बिंदु के नीचे स्थित सभी मौजूदा लगातार इंडेक्स में row
संपत्ति एक से बढ़ी जाएगी।
आप उन्हें सीधे उपयोग नहीं कर सकते हैं, लेकिन QTreeView
विस्तारित वस्तुओं और चयनित वस्तुओं का ट्रैक रखने के लिए, उदाहरण के लिए करता है।
और इन लगातार इंडेक्स को अद्यतन करने के लिए, आपको नए रिकॉर्ड जोड़ने पर वास्तविक पंक्ति सम्मिलन (ओं) के आसपास QAbstractitemModel::beginInsertRows()
और endInsertRows()
फ़ंक्शन को कॉल करना होगा।
जानकारी के लिए उपवर्गीकरण मॉडल कक्षाओं के बारे में अनुभाग के अंत देखें: http://doc.trolltech.com/latest/qabstractitemmodel.html#subclassing
मैं इस विधि QAbstractItemModel::persistentIndexList
मिल गया और मैं सोच रहा क्या अनुक्रमित इसे वापस चाहिए हूँ। उन सभी को ?
क्या यह विधि वर्तमान में TreeView में दिखाई देने वाले सभी नोड्स को वापस कर देनी चाहिए?
विधि केवल अनुक्रमित जिसके लिए एक QPersistentIndexModel
बनाया गया था वापस आती है और दायरे में अब भी है (एक स्थानीय चर, एक वर्ग के सदस्य के रूप में या उदाहरण के लिए एक QList<QPersistentIndexModel>
में) यही कारण है कि।
विस्तारित या चयनित नोड्स वर्तमान में वर्तमान में दिखाई नहीं दे रहे हैं, इसलिए आप इन लगातार इंडेक्स का उपयोग करने के बारे में कुछ भी नहीं मान सकते हैं (और वैसे भी नहीं)।
तुम बस उन्हें अपडेट रखने के लिए है, और आप केवल मॉडल में बड़े परिवर्तन के लिए persistentIndexList
उपयोग करने के लिए, छंटाई (देखें QTreeWidget
आंतरिक मॉडल: QTreeModel::ensureSorted
(link)) की तरह की जरूरत है, छोटे वृद्धिशील परिवर्तन के लिए आप सभी beginXxxRows/beginXxxColumns
and endXxxRows/endXxxColumns
methods है।
क्या आपने लेआउट का उपयोग किया थाआउटआउट और लेआउट चेंज किए गए सिग्नल आपके मॉडल में? –