Mad*_*adH 8 sql database qt qt4
在Qt 4.4中设置表格模型后,如下所示:
QSqlTableModel *sqlmodel = new QSqlTableModel();
sqlmodel->setTable("Names");
sqlmodel->setEditStrategy(QSqlTableModel::OnFieldChange);
sqlmodel->select();
sqlmodel->removeColumn(0);
tableView->setModel(sqlmodel);
tableView->show();
Run Code Online (Sandbox Code Playgroud)
内容显示正确,但无法编辑,错误:
QSqlQuery::value: not positioned on a valid record
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 12
我可以在Qt 4.5.1中确认该错误的存在与您报告的完全相同,并且文档(例如此处)仍然给出了错误的示例(即包括removeColumn调用的示例).
作为一种解决方法,我试图编写一个连接到beforeUpdate信号的插槽,想要检查QSqlRecord有什么问题,它将在数据库中更新并可能修复它,但是我不能让它工作 - 对该记录参数的方法的任何调用都会导致我的玩具应用程序崩溃.
所以我已经放弃了这个想法并转而采用正确的方法来实现它(可见性应该由视图决定,而不是由模型决定,对吧? - ):失去removeColumn代替它tableView->setColumnHidden(0, true)而代替它.这样就可以隐藏ID并且一切正常.
所以我认为我们可以确认文档错误并在Qt跟踪器中打开它的问题,因此可以在下一轮文档中修复,对吧?
| 归档时间: |
|
| 查看次数: |
2732 次 |
| 最近记录: |