Qt-очистка содержимого QTableView [закрыто]
Я работаю в Qt 4.7 и имею диалог, содержащий (среди прочего, несвязанные вещи) QTableView и QButton. При нажатии кнопки QButton необходимо очистить все данные из QTableView. Я не уверен, как это компенсировать. Я некоторое время искал в интернете, но не нашел ничего слишком полезного. Основываясь на том, что я нашел здесь, Я попытался это:
void MyClass::on_myButton_clicked()
{
myTableView->model()->clear();
}
однако это дало следующую ошибку:
error: C2039: 'clear' : is not a member of 'QAbstractItemModel'
есть еще один способ сделать это, который я случайно упустил? Спасибо!
2 ответов
функции myTableView->model()
возвращает QAbstractItemModel
, который не содержит clear()
метод. Вы должны вызвать метод clear вашей модели. Если у вас есть модель, как:
QStandardItemModel * model= new QStandardItemModel( 2, 4 );
вызов clear должен удалить все данные из модели, стирая представление, как следствие, как это предусмотрено, чтобы показать данные в связанной модели:
model->clear();
Я бы сбросил модель (Если вам не нужны данные в модели позже). Подкласс вашей модели (если она пользовательская) и реализовать слот, как
void clear(){
this->beginResetModel();
... // clear the content of your model here
this->endResetModel();
{
просто проверить этой.