需要一些帮助来找出为什么我QListView
不会刷新。
我正在QListView
使用QSqlTableModel
. 我在以下函数中实现模型。我从类的构造函数中调用这个函数。
void myclass::refresh()
{
model_path = new QSqlTableModel(this);
model_path->setTable("mytable");
model_path->setEditStrategy(QSqlTableModel::OnManualSubmit);
model_path->select();
ui->listView_path->setModel(model_path);
ui->listView_path->setModelColumn(1);
}
以下函数将添加一行并qlistView
刷新没有任何问题。
void myclass::on_pushButton_add_clicked()
{
QSqlRecord rec (model_path->record());
rec.setValue(1,ui->lineEdit->text());
rec.setValue(2,2);
model_path->insertRecord(-1, rec);
emit model_path->layoutChanged();
}
以下函数将根据QListView
. 一旦完成,删除就会从数据库中删除该行.submitAll
。但是,QListView
不会持续更新。
void myclass::on_pushButton_remove_clicked()
{
model_path->removeRow(ui->listView_path->currentIndex().row());
emit model_path->dataChanged(ui->listView_path->currentIndex(),ui->listView_path->currentIndex());
emit model_path->layoutChanged();
}
如果我删除一行,列表将不会刷新。如果我添加一个或多个新行,然后删除其中一个或全部,它们将被刷新。正如你所看到的,我同时使用了两者dataChanged
,layoutChanged
但它们在这里似乎没有多大作用。
我不明白为什么刷新不一致。任何人都可以帮忙吗?