2014-04-07 22 views
6

Qt 4.7 çalışıyorum ve bir QTableView ve bir QButton içeren (diğer alakasız şeyler arasında) bir iletişim kutusu var. QButton tıklandığında, QTableView'deki tüm verileri temizlemelidir. Bunu nasıl yapacağım konusunda emin değilim. Bir süredir internete baktım ama çok yararlı bir şey bulamadım.Qt - QTableView içeriğini temizleme

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

yanlışlıkla bakan olduğumu bunu yapmanın başka bir yolu var mı:

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

Ancak bu şu hatayı verdi: Ben here ne buldum dayanarak, bu çalıştı? Teşekkürler!

cevap

7

myTableView->model() işlevi, clear() yöntemini içermeyen bir QAbstractItemModel döndürür. Modelinizin net yöntemini çağırmalısınız.

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

o ilişkili modelinde veri göstermek için sağlanmıştır gibi bir sonucu olarak görünümü silme modeli tüm verileri silmek gerekir net çağrılması:

model->clear(); 
Eğer böyle bir model varsa
7

Modeli sıfırlayacağım (Eğer modele daha sonra veriye ihtiyacınız yoksa). (bir özel biriyse) modelinizi alt sınıfa ve sadece this kontrol

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

gibi bir yuva uygulamak.