2014-04-07 6 views
6

मैं क्यूटी 4.7 में काम कर रहा हूं, और इसमें एक संवाद है (अन्य, असंबंधित चीज़ों के साथ) एक QTableView और QButton। जब QButton क्लिक किया जाता है, तो इसे QTableView से सभी डेटा साफ़ करना होगा। मैं इस बारे में अनिश्चित हूं कि इसे कैसे प्राप्त किया जाए। मैंने थोड़ी देर के लिए ऑनलाइन देखा है, लेकिन कुछ भी उपयोगी नहीं मिला है। मैं क्या here पाया के आधार पर, मैं इस कोशिश की:क्यूटी - क्लीयरिंग QTableView की सामग्री

error: C2039: 'clear' : is not a member of 'QAbstractItemModel' 

वहाँ एक और तरीका है कि मैं गलती से अनदेखी कर रहा हूँ यह करने के लिए है:

void MyClass::on_myButton_clicked() { myTableView->model()->clear(); }

बहरहाल, यह निम्न त्रुटि दे दी है? धन्यवाद!

उत्तर

7

फ़ंक्शन myTableView->model()QAbstractItemModel देता है जिसमें clear() विधि नहीं है। आपको अपने मॉडल की स्पष्ट विधि कॉल करनी चाहिए।

QStandardItemModel * model= new QStandardItemModel(2, 4); 

स्पष्ट मॉडल एक परिणाम के रूप देखने को मिटाकर से सभी डेटा हटाना चाहिए कॉलिंग के रूप में यह जुड़े मॉडल में डेटा दिखाने के लिए प्रदान की जाती है:

model->clear(); 
आप की तरह एक मॉडल है
7

मैं मॉडल को रीसेट कर दूंगा (यदि आपको बाद में मॉडल में डेटा की आवश्यकता नहीं है)। अपने मॉडल उपवर्ग (अगर यह एक कस्टम एक है) और इस तरह

void clear(){ 
    this->beginResetModel(); 
    ... // clear the content of your model here 
    this->endResetModel(); 
{ 

बस this जाँच एक स्लॉट को लागू।

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