के साथ मौजूदा (पंक्ति, कॉलम) सी ++ मॉडल का उपयोग करना मेरे पास कुछ मॉडल हैं जो QAbstractItemModel
नियमों को पुनर्प्राप्त करने और तालिका के लिए डेटा प्रदान करने के नियमों का उपयोग करते हैं।QtQuick (ग्रिड, टेबल व्यू)
मेरे उदाहरण मॉडल में कई कॉलम और पंक्तियां हैं। दुर्भाग्य से QtQuick विजेट केवल एक कॉलम को संभाल सकता है। भूमिकाओं के माध्यम से QtQuick विजेट में अन्य "कॉलम" जोड़े जाते हैं। तो दृश्य में एकाधिक कॉलम मॉडल में एक ही कॉलम से मेल खाते हैं। अन्य मॉडल कॉलम, अनदेखी कर रहे हैं के रूप में this question and its answer में विस्तार से बताया
मैं सोच रहा था कि यह भी मुश्किल एक अमूर्त प्रदान करने के लिए नहीं होना चाहिए QML सी ++ पक्ष पर इस्तेमाल किया जा करने के लिए (एक QAbstractProxyModel
के रूप में) जो जब पंक्ति एन के लिए कहा, modulos यह स्रोत मॉडल की कॉलम गिनती से और परिणामस्वरूप वास्तविक कॉलम से डेटा पुनर्प्राप्त करता है। यह Grid
के लिए काम करेगा, लेकिन TableView
के लिए काम नहीं करेगा क्योंकि यह TableViewColumn
पर निर्भर करता है और केवल निरंतर पंक्ति सूचकांक का उपयोग करने के बजाय भूमिका नामों पर निर्भर करता है। इसके लिए, प्रॉक्सी मॉडल को उस स्रोत द्वारा अंतर करने की आवश्यकता होगी जो स्रोत मॉडल के कॉलम से पुनर्प्राप्त करने के लिए है।
http://qt-project.org/forums/viewthread/41793 के उत्तर में मौजूद स्निपेट QSqlTableModel
को अपनाने के लिए करता है, लेकिन अभी भी उपयोग करने के लिए बहुत से संकेतों का अनुवाद करना याद करता है। जैसा कि मैंने कल्पना की है कि यदि SQL स्रोत मॉडल columnsInserted
उत्सर्जित करेगा, तो उसे उस कॉलम के लिए चुनी गई नई भूमिकाओं और उपलब्ध भूमिका नामों में परिवर्तन के साथ dataChanged
सिग्नल में अनुवाद करना चाहिए। QMLifyProxyModel बेहतर प्रतीत होता है, लेकिन उत्पादन 4 साल से तैयार और मृत नहीं है, ऐसा लगता है।
आधिकारिक सिफारिश के अनुसार, हम दोनों कैसे अच्छी तरह से इसे ठीक कर सकते हैं ताकि दोनों दुनिया एक साथ काम कर सकें? QtQuick विचार (पंक्ति, कॉलम) नोटेशन का उपयोग क्यों नहीं करते हैं कि QAbstractItemModel
और QTableView
पहले से ही उपयोग कर रहा है?