问题标签 [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.
c++ - QSqlRelationalTableModel QTableView 着色行
对 a 中的行进行颜色编码的正确方法是QTableView
什么?
我正在开发一个电子表格应用程序,它应该根据其中一列中设置的特定值对其行进行颜色编码。我使用QSqlRelationalTableModel
and QSqlRelationalDelegate
; 因为,应该确定颜色的值是外键。
为什么不能像下面这样简单?有任何想法吗?
c++ - QSqlRelationalTableModel 显示图标而不是数据
我正在显示一个表,其中包含一个带有 blob 的列(pdf 文件)。我本可以为用户隐藏该列,但是当它是存档文档时,我想在该列中显示一个图标。我将 QsqlRealtionalTableModel 子类化并重载数据函数。如下图所示。我的问题是,现在该图标与 PDF 中的乱码数据一起显示。我认为这个重载函数正在用图标代替数据。
python - 带有 OnManualSubmit 的 QSqlRelationalTableModel
我这样设置视图的模型:
但是在 tableview 中编辑第 10 列后,将显示 id-value (IOKey)。编辑前显示的是正确的相关值(“IOText”)。
如果我删除带有“setEditStrategy”的行,一切正常,但我想要一个带有“OnManualSubmit”的 EditStrategy。
谢谢!
python - 将 QSqlRelationalTableModel 模型更改提交到数据库
我在 https://doc.qt.io/qt-5/qtsql-relationaltablemodel-relationaltablemodel-cpp.html修改了关系表模型
我希望能够将我的更改保存到我的数据库中,但它只保存前两列,而不是主键查找行。另外,我无法删除行。我已经搜索过,但没有找到有关如何执行此操作的任何信息。我究竟做错了什么?
我使用的样本数据是:
我的代码:
python - 在 pyqt 中使用 QSqlRelationalTableModel 更改 dataChanged 的信号
我将 QSqlRelationalTableModel 与 QSqlRelationalDelegate 一起用于简单的数据库编辑应用程序。
当用户使用委托编辑器修改记录中的值(项目)时,我想创建一个信号。
代码发布:PyQt4 和 python 3.5.6
在这里你可以找到我的代码。感谢我们的帮助。
库和常量
表的关系委托类:
主要申请形式:
在我的数据库中创建和添加数据的方法:
python - 如何对使用 QSqlRelationalTableModel、QSqlRelationalDelegate、PyQt5 的 QTableView 和下拉列表进行排序
我需要对使用 QSqlRelationalTableModel 和 QSqlRelationalDelegate 的 QTableView 中显示的记录进行排序。我希望对下拉列表和表格视图中的值进行排序。
我做了很多搜索,但没有找到将 QSortFilterProxyModel 与 QSqlRelationalTableModel 和 QSqlRelationalDelegate 一起使用的示例。我的尝试没有提供排序,并且禁用了我需要 QSqlRelationalTableModel 的读写功能,并且还禁用了下拉列表。
表格和下拉列表可以排序吗?
python - 通过 QSqlRelationalTableModel 中的 QSortFilterProxyModel 过滤时 QTreeView 上的无限循环
每当我启用过滤器并在我的链接QSortFilterProxyModel()
中插入一条新记录时,我都会收到错误消息:QSqlRelationalTableModel()
QTreeView
标准情况是使用CTRL + N
- OK 创建一个新的数据记录。
过滤也有效 - 好的。
但是如果我设置过滤器并创建一个新记录,python 会失败:
如何重现:
lastName
设置一个过滤器,例如Smith
。- 点击
CTRL + N
创建新记录。
=> 结果:Python 陷入无限循环,直到出现提到的错误消息。
=> 预期结果:该行应该被创建并且不被过滤器命中。删除过滤器后,应显示所有行,以及新创建的行。
完整的工作代码示例:
c++ - QSqlRelationalTable 如何在具有外键的列中显示来自其他表的值?
我有一个包含三个表的 SQLite 数据库:
在我的桌面应用程序中,我正在为模型/视图使用自定义类
我正在像这样设置它们:
此代码有效并正确显示数据,但我想将第 2 列和第 3 列(和sourceID
)targetID
替换edgeModel
为vertex.ID
vertex.name
我进行了一些搜索并找到了该setRelation
方法(与我在代码中注释掉的方法相同),但是当我使用它时,edgeModel
表格没有显示任何边缘。
是因为我的表模式还是我的代码有问题?
我如何实现这一目标?
编辑:
以下是我正在使用的类的实现:
MyTableModel.h/cpp
VertexTableModel.h/cpp
EdgeTableModel.h/cpp
GraphyEditor.h/cpp
GraphyCanvas.h/cpp
main.cpp
DBManager
是一个帮助类,负责初始化和访问数据库
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 文本文件的内容
我是在这个网站上发布的新手,对帮助中心的快速回顾并没有为我提供解决方案。
python - 组合框中的映射数据与超过 256 个项目的关系
我有一个带有超过 256 行的相关表的 QSqlRelationalTableModel。关系工作完美,我在第 1 列中有来自“relation_table”的相关值
但映射组合框中的数据并通过在组合框中选择提交到数据库,仅适用于前 256 行。
手动将高于 256 的值添加到 db 中,相关值不会映射到组合框,但在 tableview 中关系正确。
否则显示单击组合框列表中的组合框的所有项目。
我有来自具有以下结构的 SQLITE 数据库的数据:
这是一个简单的工作示例:
要测试上面示例中的问题,您必须在表“rel_table”中填充超过 256 行!
我怎样才能得到一个正确的工作组合框,它显示所有相关项目的关系?