问题标签 [qsqltablemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
243 浏览

python - 自动更新 QSqlTableModel 和 QTableView

我使用 创建了一个模型QSqlTableModel,然后使用创建了一个 tablviewQTableView并在其上设置了模型。

每当数据库被另一个程序更新时,我想自动更新模型和视图。我怎样才能做到这一点?

0 投票
1 回答
184 浏览

qt - 在 Qt 模型/视图中修改数据表示

我正在使用 Qt 5.4.2,但在尝试从模型填充视图时如何更改数据“表示”时遇到了麻烦。我有一个 QSqlTableModel 来保存数据库数据和一个 QTableView 来显示数据库的内容。

现在数据库中的一些数据与我想在视图中显示的格式不同。例如,我想以不同的方式显示日期格式,但我不知道在哪里/如何实现这种逻辑。我不希望模型受到任何影响,只影响视图中显示的数据。

0 投票
1 回答
610 浏览

c++ - QSqlTableModel 过滤无结果

我正在尝试在 qt c++ 中访问 mysql 数据库。

我有不同的表,想将它们输出到QTableView.

我使用QSqlTableModel,效果很好,但是一旦我想过滤结果,我就会遇到问题..

这是我的源代码的主要部分:

}

ID 过滤器(案例 0)工作正常。但其他所有内容(名字、姓氏等)都没有。我只是得到一张空桌子。所以我可以看到列名(因此我认为我的 sql 语法是正确的)但是无论我输入什么都没有条目。

我的源代码有错误吗?或者我怎样才能让它工作?

0 投票
1 回答
2118 浏览

sql - 子类化 QSqlTableModel 插入新值

我想在 QML-Tableview 中显示来自本地 db-File 的 SQL 数据,而不是想对 sql-database 进行一些编辑。大约三周后我设法做到了:在 QML-Tableview 中显示我的数据。我不确定我是否真的需要对 QSqlTableModel 进行子类化,如果根本不需要子类化,我肯定会很高兴。

在我的 main.cpp 下面应该创建我的模型并直接添加一条记录。

这应该将 222 添加到第 4 列。但是我的 sqlDatabase 中不会存储任何内容

我的 SqlDataModel::setData 看起来像这样:

输出将是:

当然我的 setData 方法是错误的,但我不明白那里应该发生什么,我没有找到任何例子。

我的假设是否错了,我需要继承 QSqlTableModel 才能将模型通过 QQmlContext 放到 QML 中,而不是显示具有像我的列命名这样的角色的列?如果不是我怎么能把第 1 列的内容放到 QMLTableview 中:

我很高兴得到任何帮助、评论、示例、其他帖子或任何让我更进一步的东西......谢谢

0 投票
1 回答
405 浏览

python - PyQt - 重新实现 QSqlTableModel 的数据方法的麻烦

我是 python 的新手,主要是 pyqt。问题很简单:我有一个QTableView并且我想“简单地”改变一些行的颜色。环顾四周,我发现最简单的解决方案应该是以这样的方式覆盖模型中的数据方法:

当我使用此模型重新实现时,行正在更改颜色,但单元格值消失并且返回语句QtSql.QSqlTableModel().data(testindex)始终为None. 我要疯了才能找到解决方案。你可以帮帮我吗?

0 投票
1 回答
2679 浏览

qt - Qt中如何在另一个tableView中显示QSqlTableModel的过滤数据?

我已经通过使用加载了一个数据库QSqlTableModel,并将其显示在tableView1. 现在,我已经为此设置了一个过滤器QSqlTableModel,并希望在tableView2. tableView1并且tableView2不应该相互影响。那么,如何展示,最快的方式是什么?

笔记:

  1. 数据库只有数字没有字符串,维度不大(500*5左右);
  2. 中的数据tableView2不需要存储。

主要代码如下:

我不想将过滤后的数据写入另一个数据库,然后存储它,显示它。我想找到一些更好的方式来展示它。或者,我是否需要在矩阵中提取过滤后的数据,并在中显示该矩阵tableView?谁能提供一些想法?谢谢

0 投票
3 回答
1627 浏览

kdb - 使用 kdb 按日期输出前几条记录

假设我有一个表格,其中包含日期、符号和大小作为列。每个日期的日期按升序排列,大小按降序排列。我如何删节表格,以便每个日期,只保留前几个,比如 10 个记录?命令越简单越好。

提前致谢!

0 投票
0 回答
529 浏览

c++ - QSqlTableModel 和 SQLite 中的快速行搜索

我使用 SQLite 3.x、Qt 5.7、C++ QSqlTableModel、、QTableView类。该表sites包含唯一url列。在小数据修改的情况下,我想避免冗余选择并最小化/排除我的模型的完全重置。QSqlRecord所以,我更喜欢在这个项目中使用只读的原始 SQL 查询和写作。我通过更改相应的QSqlRecord实例来更新模型中的行。但是我必须对要更新的记录进行线性搜索(请参见下面的伪代码):

我想使用 SQLite 内部方法进行更快的搜索。如何found_id在 SQLite 中找到正确的标识符(让我们命名)以便调用QSqlRecord record = row(found_id);?请注意,也将使用插入和删除。

这是简化的 DDL:

0 投票
0 回答
628 浏览

c++ - 通过 QSqlTableModel 中的 setRecord 更新行

我使用 Qt 5.7、C++、SQLite 数据库。我有QSqlTableModel后代。我通过调用(setRecord()模式)更新行。让我们设置为单行。它正确保存在数据库中,相应的也会自动刷新。当我再次设置为任何行时,修改会显示在视图中,但不会保存在数据库中。请参阅Qt 5.7.0 的 qsqltablemodel.cpp 源代码submitAll()QSqlTableModel::OnManualSubmitvalue_1field_1QTableViewvalue_2field_1

bool QSqlTableModelPrivate::exec(const QString &stmt, bool prepStatement, const QSqlRecord &rec, const QSqlRecord &whereValues)

它包含以下片段:

就我而言,对于第二次和进一步的更新调用,以下条件为真:editQuery.lastQuery() == stmt.

stmt 可以包含类似的值

UPDATE documents SET "mark"=? WHERE "documents"."id" = ? AND "documents"."checked" = ? AND "documents"."state" = ?

所以,bool QSQLiteResult::prepare(const QString &query)不叫。这就是为什么在分配之后

int paramCount = sqlite3_bind_parameter_count(d->stmt);

这个条件为真:(paramCount == 0qsql_sqlite.cpp:429d->stmt是一个指向它的指针sqlite3_stmt,它是 NULL)。

它导致最终错误“参数计数不匹配”。这是一个错误,有什么解决方法?请不要建议原始 SQL,我不想经常重置模型。

0 投票
0 回答
510 浏览

c++ - 为 QTreeView 调整 QSqlTableModel

我正在尝试将 MySQL 表放入treeView.

每个条目在数据库中都有三个值 - idtextparentId。这treeView需要是可编辑的,所以我真的很喜欢这种QSqlTableModel方法,因为已经内置了保存回数据库的功能。

现在,treeView当然,在同一行中显示所有条目,我需要一个层次结构。在保持编辑和保存功能的同时,构建此层次结构的最佳方式是什么?(我正在使用 MySQL。)

主窗口.h

private: QSqlTableModel* goalModel;

主窗口.cpp

(这会形成一个平面表层次结构。根据在另一个表中单击哪个条目来过滤表)

我试过这个。这是错误的,但我真的不知道为什么。(第三列包含 parentId 值,如果条目有)

所有索引都已经创建,因此无需创建新索引,只需为所有拥有索引的人分配父级即可。如何最好地做到这一点?