gpt4 book ai didi

sql - QSqlTableModel 的问题——没有自动更新

转载 作者:太空狗 更新时间:2023-10-30 01:45:40 52 4
gpt4 key购买 nike

像这样在 Qt 4.4 中设置表模型后:

    QSqlTableModel *sqlmodel = new QSqlTableModel();

sqlmodel->setTable("Names");
sqlmodel->setEditStrategy(QSqlTableModel::OnFieldChange);
sqlmodel->select();
sqlmodel->removeColumn(0);

tableView->setModel(sqlmodel);
tableView->show();

内容显示正常,但无法编辑,错误:

     QSqlQuery::value: not positioned on a valid record

最佳答案

我可以确认在 Qt 4.5.1 中确实存在您所报告的错误,并且文档,例如here ,仍然给出了一个错误的例子(即一个包含 removeColumn 调用的例子)。

作为一种解决方法,我尝试编写一个连接到 beforeUpdate 信号的槽,以检查即将在数据库中更新的 QSqlRecord 有什么问题并可能修复它,但我无法让它工作——任何对该记录参数的方法的调用都会导致我的玩具应用程序因 BusError 崩溃。

所以我放弃了这个想法,转而采用毫无疑问的正确方法(可见性应该由 View 决定,而不是由模型决定,对吗?-):丢失 removeColumn 而不是调用 tableView->setColumnHidden(0, true) 。这样 ID 就被隐藏了,一切正常。

所以我认为我们可以确认存在文档错误并在 Qt 跟踪器中打开一个关于它的问题,这样它就可以在下一轮文档中修复,对吗?

关于sql - QSqlTableModel 的问题——没有自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038954/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com