2014-04-07 19 views
6

Sto lavorando in Qt 4.7 e ho una finestra di dialogo contenente (tra le altre cose non correlate) un QTableView e un QButton. Quando si fa clic su QButton, è necessario cancellare tutti i dati da QTableView. Non sono sicuro su come accompagnarlo. Mi sono guardato in giro online per un po ', ma non ho trovato nulla di troppo utile. Sulla base di quello che ho trovato here, ho provato questo:Qt - Clearing QTableVisualizza il contenuto

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

Tuttavia, questo ha dato il seguente errore:

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

C'è un altro modo per fare questo che sto sottovalutando sbaglio? Grazie!

risposta

7

La funzione myTableView->model() restituisce un QAbstractItemModel che non contiene il metodo clear(). Dovresti chiamare il metodo chiaro del tuo modello. Se si dispone di un modello come:

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

vocazione dovrebbe eliminare tutti i dati dal modello cancellando la vista di conseguenza in quanto è previsto per visualizzare i dati nel modello associato:

model->clear(); 
7

Vorrei ripristinare il modello (se non sono necessari i dati nel modello in seguito). sottoclasse vostro modello (se si tratta di uno personalizzato) e attuare una fessura come

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

Basta controllare this.

Problemi correlati