C++ 刷新QListView不工作
需要一些帮助来查找为什么我的QListView不会刷新 我将QListView与QSqlTableModel一起使用。我在以下函数中实现该模型。我从类的构造函数调用这个函数 void myclass::refresh { model_path=新的QSqlTableModelthis; model_path->setTablemytable; 模型路径->setEditStrategyQSqlTableModel::OnManualSubmit; 模型路径->选择; ui->listView\u路径->setModelmodel\u路径; ui->listView\u path->setModelColumn1; } 下面的函数将添加一行,qlistView将刷新而不会出现任何问题 void myclass::单击按钮添加 { QSqlRecord rec model_path->record; rec.setValue1,用户界面->行编辑->文本; 记录设置值2,2; 模型路径->插入记录-1,记录; 发射模型路径->布局更改; } 以下函数将根据QListView中高亮显示的行删除一行。删除操作的作用是,一旦完成.submitAll,该行将从数据库中删除。但是,QListView的更新并不一致 void myclass::在按钮上单击“删除” { model\u path->removowui->listView\u path->currentIndex.row; 发出模型路径->数据变更DUI->列表视图路径->当前索引,用户界面->列表视图路径->当前索引; 发射模型路径->布局更改; } 如果删除一行,列表将不会刷新。如果我添加一个或多个新行,然后删除其中一个或所有行,它们将被刷新。正如您所看到的,我使用dataChanged和layoutChanged,但它们在这里似乎没有什么作用C++ 刷新QListView不工作,c++,qt,qlistview,qtsql,qsqltablemodel,C++,Qt,Qlistview,Qtsql,Qsqltablemodel,需要一些帮助来查找为什么我的QListView不会刷新 我将QListView与QSqlTableModel一起使用。我在以下函数中实现该模型。我从类的构造函数调用这个函数 void myclass::refresh { model_path=新的QSqlTableModelthis; model_path->setTablemytable; 模型路径->setEditStrategyQSqlTableModel::OnManualSubmit; 模型路径->选择; ui->listView\u
我不明白为什么刷新不一致。有人能帮忙吗?添加或删除某些行时,不需要同时调用layoutChanged或dataChanged。它们不是为此类更新而设计的。检查
可能,您的问题在于理解编辑策略QSqlTableModel::OnManualSubmit。尝试将其更改为QSqlTableModel::OnFieldChange谢谢您的回答。我使用layoutChanged和dataChanged只是为了说明两者都不起作用。此外,OnManualSubmit是正确的编辑策略,因为我只在最后提交更改。