2010-08-27 11 views
8

के लिए मॉडल का उपयोग कैसे करें मैं QComboboxComboboxJava में Combobox का उपयोग करना चाहता हूं। तो मुझे अपनी ऑब्जेक्ट रखने के लिए Model का उपयोग करने की आवश्यकता है। मैं QCombobox में अपना ऑब्जेक्ट कैसे रख सकता हूं। (मुझे लगता है कि मुझे मॉडल में डेटा रखना चाहिए क्योंकि QCombobox एमवीसी पैटर्न के अनुसार डिजाइन किया गया था ...) किसी भी मदद की सराहना की जाएगी।QCombobox

उत्तर

9

क्या आप अपने QComboBox साथ प्रदर्शित करना चाहते हैं पर निर्भर करता है, आप अपने खुद के मॉडल लिखने के लिए, की आवश्यकता होगी QAbstractListModel इनहेरिट rowCount() और data() reimplementing।

फिर, QComboBox इसे प्रदर्शित करने के लिए QComboBox::setModel() का उपयोग करें।

यदि आप केवल स्ट्रिंग प्रदर्शित करना चाहते हैं, तो आप QStringListModel का उपयोग कर सकते हैं, जो क्यूटी के साथ प्रदान किया जाता है।

+0

जहां उप-वर्गीकृत मॉडल में डेटा (टेक्स्ट नहीं) रखा गया था? 'QComboBox :: मॉडल() -> अनुक्रमणिका (पंक्ति, 1)'? – Orient

3

setModel फ़ंक्शन का उपयोग करके आप अपने QCombobox पर एक मॉडल जोड़ सकते हैं। आप एक पूर्वनिर्धारित मॉडल का उपयोग कर सकते हैं या QAbstractItemModel से विरासत में अपना स्वयं का बना सकते हैं।

आपके मॉडल में डेटा से अलग प्रदर्शन करने के लिए आपका ऑब्जेक्ट होगा।

2

क्यूटी एमवीसी के सरलीकृत संस्करण का उपयोग करता है जिसमें केवल मॉडल/व्यू पार्ट्स होते हैं।

यदि आप किसी विशेष व्यवहार की आवश्यकता नहीं है, तो आप QAbstractItemModel के प्रदत्त उपखंडों में से एक का उपयोग कर सकते हैं, जिसका उपयोग करने के लिए कोई भी इस पर निर्भर करता है कि आप फ़ाइल डेटा में या डेटा में डेटा संरचना में अपना डेटा रखते हैं या नहीं।

आपको क्यूटी दस्तावेज में model/view programming पर पूरे अनुभाग को पढ़ना चाहिए।