2013-02-07 11 views
10

मैं क्यूटी मॉडल/व्यू फ्रेमवर्क का उपयोग कर रहा हूं। जब मैं मॉडल में डेटा रीसेट करता हूं, तो मुझे दृश्य अपडेट को देखने के लिए मॉडल को रीसेट करना होगा। यह कैसे करना है? मुझे QAbstractItemModel में modelReset(QPrivateSignal); सिग्नल मिला, क्या इसे हल करने का यह तरीका है? संकेत कैसे निकालें? धन्यवाद।क्यूटी में मॉडल रीसेट कैसे करें?

+1

वर्थ अनुमति दे सकते हैं। सभी इस बात पर निर्भर करते हैं कि क्या परिवर्तन किए जाते हैं। मॉडल रीसेट उपयोगी होता है जब आप मॉडल में बड़े कैंज प्रदर्शन कर रहे होते हैं। 'StartInsertRow',' startMoveRows', 'startRemoveRows'' है। ये सभी विधियां कॉलम पर भी लागू होती हैं। इसलिए यदि आप छोटे बदलाव करने जा रहे हैं तो 'startResetModel' का उपयोग न करें क्योंकि यह दृश्य में छोटे बदलावों को लागू करने के बजाय पूरे मॉडल को पुनर्निर्माण करेगा। –

उत्तर

11

आप अपना डेटा रीसेट करने से पहले beginResetModel() पर कॉल करते हैं, और फिर endResetModel() एक बार समाप्त करने के बाद। endResetModel() निजी सिग्नल उत्सर्जित करता है।

+0

धन्यवाद, यह किया। – Borzh

2

आप here देख सकते हैं, पसंदीदा तरीका अपने मॉडल उपवर्ग में अपने रीसेट कोड के आसपास के beginResetModel() और endResetModel() कार्यों का उपयोग करने के लिए है।

यह सिग्नल को उचित रूप से उत्सर्जित करना चाहिए।

qabstractitemmodel उपवर्गों में से कुछ आप model.removeRows(0,model.rowCount()) (दूसरों यह अपने आप को लागू करने के लिए आप की आवश्यकता होगी) उपयोग करने के लिए वहाँ अन्य तरीकों कि विचारों को अद्यतन करने में मदद कर रहे हैं कि उल्लेख करने के लिए

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