问题标签 [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 回答
527 浏览

qt - 自己的QSqlTableModel,根据一个QModelIndex的值给整行上色

我过去扩展了 QSqlTableModel,但目前我被卡住了(毕竟还是一个初学者):

现在这很适合它的功能。它将表格中的字段着色为黄色,但我希望整行都被着色。所以你一眼就能看出这条记录已经被(软)删除了。

如您所见,我已经尝试调用 setData,但无济于事。(当然,我会为这一行中的每个索引执行此操作,但由于它一开始不起作用,所以我停在那里。)

对此有什么想法吗?我在网上搜索了很多,但似乎找不到为整行着色的方法。

0 投票
1 回答
89 浏览

python-3.x - 从 QTableView 中取消删除行

我是 PyQt5 的新手,我正在使用 QTableView。在成功知道如何删除选定的行之后..我已经搜索了很多以了解如何从表中取消删除选定的已删除行(以及从 TableModel 中按顺序)但没有结果...

到目前为止,我可以根据标题数据知道该行是否标记为已删除:

我尝试了 revertRow(rowIndex) 和 selectRow() 但这些方法从数据库中重新填充了行并且没有删除标志“!”;意思是 - 正如我所料 - 在提交时,它将被删除。

请,任何帮助。

0 投票
1 回答
228 浏览

qt - qsqltablemodel incompatible data types

I have a simple form with button and some line edits and listview. In listview users can select items and in line edits edit their parameters.

error:

0 投票
1 回答
965 浏览

python - 如何在QT QSqlRelationalTableModel中显示一个关系sql表?

我正在尝试使用 QT 的 QSql 关系表模型。我是 Pyqt 新手,sql 表关系不显示我的数据库,这是为什么呢?我有一个 db 文件,其中的数据库在同一目录中具有关系表。http://pyqt.sourceforge.net/Docs/PyQt4/qtsql.html

0 投票
1 回答
940 浏览

python - 更新外键时pyqt关系表不更新

我有一个带有拆分器的窗口,在两个框架内有两个不同的表,产品类型与产品有关系,GUI 运行正常,但是当我更改产品类型的名称时,它不会更新产品表,这是为什么呢?但是一旦我重新启动,就会做出改变?有没有办法强制 pyqt 模型检查数据库的更改?

0 投票
2 回答
452 浏览

python - 使用 QSqlTableModel 的正则表达式自定义 QAbstractItemDelegate

我正在尝试创建一个自定义委托,以便我可以使用正则表达式来验证正在输入到表中的数据,但由于某种原因,我的代码不断抛出错误,是否有一个好的结构化示例?

这是我目前遇到的两个错误,当我AttributeError: 'QLineEdit' object has no attribute 'set'使用 QLineEdit.setText 修复时,我的正则表达式不起作用,它允许添加任何值。

0 投票
1 回答
1297 浏览

python - pyqt4 dateedit 代表不想显示时间

我试图让我的用户选择一个日期并使用 dateedit 小部件进入数据库,并且我通过使用委托来执行此操作,但由于某种原因它也附加了时间

选择日期后留下的字符串类似于 '30/01/2015 00:00:00' 我不想要时间吗?解决这个问题的方法是什么?

在此处输入图像描述

0 投票
1 回答
561 浏览

qt - qt 多个 QSqlTableModels 在一个事务中一起编辑

我在使用 PostgreSQL 9.3 数据库的 Qt 应用程序中有一个窗口。窗口是用于显示、编辑和插入新数据的窗体。t 看起来像这样: 在此处输入图像描述

我在该视图中有来自 3 个 sql 表的数据。这些表与外键相关:

  • 承包商(主表) - 映射到“个人数据”部分
  • 联系人(有外键承包商.ID)
  • 地址(有外键承包商.ID)

所以 - 在我的窗口类中,我有 3 个主要模型(+ 2 个代理模型来转置“个人数据”和“地址数据”部分中的表)。我QSqlTableModel用于这些部分,以及QSqlRelationalTableModel用于contactData 部分。当“正常”打开该窗口(查看某些承包商)时,我只需将承包商的 ID 传递给构造函数并将其存储在适当的变量中。QSqlTableModel::​setFilter(const QString & filter)此外,我为每个模型调用该方法,并设置适当的过滤。在“添加新”模式下打开该窗口时,我只需将“-1”或“0”值传递给 ID 变量,因此不会将数据加载到模型中。所有 3 个模型都有QSqlTableModel::OnManualSubmit editStrategy。保存数据时(通过单击适当的按钮触发),我开始交易。然后我一个接一个地提交模型。personalData首先提交模型,因为我需要在插入后获取它的PK(在其他模型的FK字段中设置)。当模型提交失败时,我显示一个带有 QSqlError 内容的消息框,回滚事务并从方法返回。当我正在处理的第一个模型出现错误时 - 没问题,因为没有插入任何内容。但是当第一个模型被保存,但第二个或第三个失败时 - 有一个小问题。所以我像以前一样回滚事务,并从函数返回。但是在更正数据并再次提交之后——第一个模型并没有尝试提交——因为它不知道有回滚,需要再次插入数据。什么是注意到这种模型需要再次提交的好方法?此刻我最终得到了类似的东西:

有没有人有更好的主意?我怀疑在尝试插入记录之前是否可以省略备份记录。但也许有更好的方法将它们“重新添加”到模型中?我尝试使用"setRecord", 和"remoweRows" & "insertRecord"组合,但没有运气。重置整个模型似乎最简单(我只需要重新初始化它,因为它会在清除时丢失表、过滤器、排序和其他所有内容)

0 投票
1 回答
1473 浏览

pyqt - 带有 QSqlRelationalDelegate 的 QSqlRelationalTableModel 在 QAbstractProxyModel 后面不起作用

我需要交换 QSqlRelationalTableModel 的行和列。经过大量搜索,我写了一个小代理模型来翻转行和列。

它正在部分工作。表中的关系已解决并显示,但选择它们的保管箱会丢失。另外,我如何让他们更新?

这是一个重现该行为的独立脚本。

我的错误在哪里?我强烈怀疑它与模型的信号和插槽有关,但我没有找到任何提示哪些以及如何重新实现它们。

还有另一种更简单的方法来交换行和列吗?

编辑:澄清授权模型并非完全不起作用,它只是部分起作用。

0 投票
2 回答
1905 浏览

qt - 使用 QSortFilterProxyModel 拥有一个有效的 QSqlRelationalDelegate

我一直在使用QSortFilterProxyModels。但是,如果QSqlRelation在源模型上设置了 aQSqlRelationalDelegate以及在视图上设置了 a ,则每当视图切换到代理模型时, 就会QSqlRelationalDelegate消失,留下基本的QLineEditor QSpinBox

如何使视图中的列同时使用 aQSortFilterProxyModelQSqlRelationalDelegate,并给出预期的QCombobox下拉菜单?