问题标签 [qsqlrelationaltablemodel]

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 回答
133 浏览

c++ - QSqlRelationalTableModel QTableView 着色行

对 a 中的行进行颜色编码的正确方法是QTableView什么?

我正在开发一个电子表格应用程序,它应该根据其中一列中设置的特定值对其行进行颜色编码。我使用QSqlRelationalTableModeland QSqlRelationalDelegate; 因为,应该确定颜色的值是外键。

为什么不能像下面这样简单?有任何想法吗?

0 投票
1 回答
85 浏览

c++ - QSqlRelationalTableModel 显示图标而不是数据

我正在显示一个表,其中包含一个带有 blob 的列(pdf 文件)。我本可以为用户隐藏该列,但是当它是存档文档时,我想在该列中显示一个图标。我将 QsqlRealtionalTableModel 子类化并重载数据函数。如下图所示。我的问题是,现在该图标与 PDF 中的乱码数据一起显示。我认为这个重载函数正在用图标代替数据。


0 投票
1 回答
168 浏览

python - 带有 OnManualSubmit 的 QSqlRelationalTableModel

我这样设置视图的模型:

但是在 tableview 中编辑第 10 列后,将显示 id-value (IOKey)。编辑前显示的是正确的相关值(“IOText”)。

如果我删除带有“setEditStrategy”的行,一切正常,但我想要一个带有“OnManualSubmit”的 EditStrategy。

谢谢!

0 投票
1 回答
534 浏览

python - 将 QSqlRelationalTableModel 模型更改提交到数据库

我在 https://doc.qt.io/qt-5/qtsql-relationaltablemodel-relationaltablemodel-cpp.html修改了关系表模型

我希望能够将我的更改保存到我的数据库中,但它只保存前两列,而不是主键查找行。另外,我无法删除行。我已经搜索过,但没有找到有关如何执行此操作的任何信息。我究竟做错了什么?

我使用的样本数据是:

我的代码:

0 投票
0 回答
249 浏览

python - 在 pyqt 中使用 QSqlRelationalTableModel 更改 dataChanged 的​​信号

我将 QSqlRelationalTableModel 与 QSqlRelationalDelegate 一起用于简单的数据库编辑应用程序。

当用户使用委托编辑器修改记录中的值(项目)时,我想创建一个信号。

代码发布:PyQt4 和 python 3.5.6

在这里你可以找到我的代码。感谢我们的帮助。

库和常量

表的关系委托类:

主要申请形式:

在我的数据库中创建和添加数据的方法:

0 投票
1 回答
135 浏览

python - 如何对使用 QSqlRelationalTableModel、QSqlRelationalDelegate、PyQt5 的 QTableView 和下拉列表进行排序

我需要对使用 QSqlRelationalTableModel 和 QSqlRelationalDelegate 的 QTableView 中显示的记录进行排序。我希望对下拉列表和表格视图中的值进行排序。

我做了很多搜索,但没有找到将 QSortFilterProxyModel 与 QSqlRelationalTableModel 和 QSqlRelationalDelegate 一起使用的示例。我的尝试没有提供排序,并且禁用了我需要 QSqlRelationalTableModel 的读写功能,并且还禁用了下拉列表。

表格和下拉列表可以排序吗?

0 投票
1 回答
313 浏览

python - 通过 QSqlRelationalTableModel 中的 QSortFilterProxyModel 过滤时 QTreeView 上的无限循环

每当我启用过滤器并在我的链接QSortFilterProxyModel()中插入一条新记录时,我都会收到错误消息:QSqlRelationalTableModel()QTreeView

标准情况是使用CTRL + N- OK 创建一个新的数据记录。

过滤也有效 - 好的。

但是如果我设置过滤器并创建一个新记录,python 会失败:

如何重现:

  1. lastName设置一个过滤器,例如Smith
  2. 点击CTRL + N创建新记录。

=> 结果:Python 陷入无限循环,直到出现提到的错误消息。

=> 预期结果:该行应该被创建并且不被过滤器命中。删除过滤器后,应显示所有行,以及新创建的行。

完整的工作代码示例:

0 投票
2 回答
551 浏览

c++ - QSqlRelationalTable 如何在具有外键的列中显示来自其他表的值?

我有一个包含三个表的 SQLite 数据库:

在我的桌面应用程序中,我正在为模型/视图使用自定义类

我正在像这样设置它们:

此代码有效并正确显示数据,但我想将第 2 列和第 3 列(和sourceIDtargetID替换edgeModelvertex.IDvertex.name

我进行了一些搜索并找到了该setRelation方法(与我在代码中注释掉的方法相同),但是当我使用它时,edgeModel表格没有显示任何边缘。

是因为我的表模式还是我的代码有问题?

我如何实现这一目标?

编辑:

以下是我正在使用的类的实现:

MyTableModel.h/cpp


VertexTableModel.h/cpp


EdgeTableModel.h/cpp


GraphyEditor.h/cpp


GraphyCanvas.h/cpp


main.cpp

DBManager是一个帮助类,负责初始化和访问数据库

0 投票
0 回答
257 浏览

python - 使用 PySide2.QtSql.QSqlRelationalTableModel()

我决定使用和学习 Qt 原生的 QtSql 类。使用 QSqlQuery() 很简单,很像 SqlAlchemy。

我尝试使用 QTableView/Model 方法,但成功非常有限。

我的参考文档是“Rapid GUI Programming with Python and Qt”一本旧书,但仍然可用。

经过多次实验,我部分成功了,但我目前的问题有点令人困惑,我目前的网络搜索没有帮助(迄今为止)

该表单显示前两条记录的信息,但不显示后续记录(最后两条)的信息。数据库中有四条记录。

数据库的分解

主表“tblRecipe”包含密钥、配方名称、类别和描述支持表“tblIngrediants”包含配方的一对多成分:字段为:“ingrediantKey”、“ingrediantDescription”、“ingrediantRecipeKey”、“ingrediantQuantity”最终表到查找表以将“tblRecipe”中的类别整数更改为人类可读的文本。我还没有尝试合并这个表。

问题:为什么我得到前 2 条记录的正确信息,而不是后 2 条记录。

我已经包含了与我的问题相关的部分代码。

结果图片:

记录 1

记录4但成分没有出现


由于 StackOverflow 似乎不允许文件传输,我将包含我的 SQL 文本文件的内容


我是在这个网站上发布的新手,对帮助中心的快速回顾并没有为我提供解决方案。

0 投票
1 回答
248 浏览

python - 组合框中的映射数据与超过 256 个项目的关系

我有一个带有超过 256 行的相关表的 QSqlRelationalTableModel。关系工作完美,我在第 1 列中有来自“relation_table”的相关值

但映射组合框中的数据并通过在组合框中选择提交到数据库,仅适用于前 256 行。

手动将高于 256 的值添加到 db 中,相关值不会映射到组合框,但在 tableview 中关系正确。

否则显示单击组合框列表中的组合框的所有项目。

我有来自具有以下结构的 SQLITE 数据库的数据:

这是一个简单的工作示例:

要测试上面示例中的问题,您必须在表“rel_table”中填充超过 256 行!

我怎样才能得到一个正确的工作组合框,它显示所有相关项目的关系?