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

database - 带有 QTableView 的 QSqlTableModel - 在编辑时考虑 DB 定义的约束

我已经实现了一个 Oracle 数据库。我将 Qt 用于我的应用程序的 GUI 并作为数据库的接口。建立与我的数据库的连接并在 QTableView 中显示表格工作正常。使用 QSqlTableModel 通常原生支持编辑所有单元格。但是,当关联的默认 ItemDelegate 编辑单元格时,Qt 似乎没有考虑数据库定义的任何约束。

假设我编辑了一个外键值的单元格,Qt 不仅让我不输入任何键值,而且提交这些更改查询数据库以执行更新。由于设置约束,这显然行不通。现在,我知道要求的默认 ItemDelegate 可能有点过分了,因为我的视图可以检查编辑时的有效值。

当我提交不受支持的值时,就会出现真正的问题。视图仍然应用值更改,表明编辑是有效的。不处理错误,也不传递错误消息。从那里开始,视图将不允许对某些行进行编辑,直到我将更改恢复为符合我的约束的值。

我很难相信,我必须设置我自己的 itemDelegate,以根据数据库中的约束验证值更改。

由于我希望能够回答这篇文章的人都知道如何建立连接,因此我将稍微简化一下代码:

我会很感激任何帮助。谢谢!

0 投票
2 回答
1177 浏览

c++ - Qt 表模型到树模型

在 Qt 中,我有一个我正在拉入的 sqlite 数据库。其中一个表(configTable)有一个QSqlTableModel附件。

该表有一个简单的 2 列键/值结构。键是具有类似文件夹值的字符串,例如“general/name”、“general/version”、“foo/bar/baz”等。值只是任意变体。

我想以更易于浏览的QTreeView方式而不是 a来显示这些数据QTableView,因为我的关键结构非常适合这一点。

在我去重新实现类和各种疯狂的事情之前 - 有没有一个优雅的解决方案?如果我重新实现或扩展类,我应该看哪些?

谢谢你。

0 投票
2 回答
444 浏览

c++ - 从插槽访问 qtableview qsqltablemodel

我看过很多讨论类似问题的教程/解释,但我不知道如何将其应用于这种情况。

我是 Qt/C++ 新手,正在尝试构建连接到 SQLite 数据库的简单 GUI 应用程序。我有 UI 表单,它是使用 Qt Creator 设计器构建的。

UI 表单包含连接到我的表的 QTableView 小部件 - 一切似乎都工作正常。

我还有一个按钮,它应该 - 最终 - 在表格中添加一行。我已经读过,我不应该运行“INSERT”查询,而是使用 QSqlTableModel 公开的方法。不幸的是,我无法从插槽访问我的 TableView 数据模型。

这是我的代码:

1) 主窗口.h

2) main.cpp

3) 主窗口.cpp

当我运行调试时,我收到以下错误消息:

错误:从 'QAbstractItemModel *' 到 'QSqlTableModel' 没有可行的转换 QSqlTableModel model = ui->myTableView->model();

我理解这个问题——我知道我可以将 QAbstractItemModel 转换为 SQLTableModel,但这似乎是一种解决方法,而不是正确的解决方案。

您能否建议,我应该如何/在哪里声明/定义/实例化我的对象,以便我可以访问 QSqlTableModel 从提到的 Slot 向我的 TableView 提供数据?

0 投票
0 回答
150 浏览

sql-server - QSqlTableModel:列名中的空格不好?

我正在使用 Microsoft ODBC 驱动程序连接到 MS SQL 表(来自 Linux)。请注意,如果“MyTable”指向列中没有空格的表,则一切正常。对于另一张表(我需要从中读取的表),东西呈梨形,大约在它到达带有空格的第一列的时候。我从 lastError().text() 中得到的错误类似于:

在我的生活中,我肯定遇到过更好的错误,但这至少是一个暗示。

代码:

如果我想尝试解决此问题并仅手动从表中选择某些列(IE,带有查询),我是否需要使用 QSqlQueryModel 执行此操作,然后为每个相邻记录调用 setData()?

0 投票
1 回答
614 浏览

qt - QSqlTableModel - 过滤器不起作用?

我创建了一个 QSqlTableModel,设置了一个过滤器并使用 QTableView 来显示我过滤数据的表格。这按预期工作......

但是,当我尝试计算表视图中列的所有可见值的总和时......

...我得到表模型中所有条目的总和,而不仅仅是 TableView 中可见的那些项目(应用过滤器的地方)。

如何使我的 sum() 函数仅计算 TableView 中可见的那些值的总和?

谢谢您的回答!

0 投票
1 回答
1300 浏览

python - 使用 pyqt 和 qtsql 构建主/详细信息表单

编辑:使用新代码重新发布并明确问题: 在下面的代码中,您可以正确添加和保存,问题是:我需要做同样的事情,但在行更改时不向数据库提交数据,我需要能够添加新联系人记录(主)并将电话插入表(详细信息)而不提交我插入的每条记录并仅在单击保存时提交

-------------老问题------

我想创建一个表单来使用 QtSql 和 PyQt 显示主/详细信息数据所以下面的代码是我想要做的一个示例,我需要能够在联系人下插入新手机并保存它

我阅读了“使用 Python 和 Qt 进行快速 GUI 编程”一书,但没有找到如何去做,所以我发布了这个问题以及完整的工作示例,我需要对其进行修改以按需要工作

编辑:其实我不知道为什么我投了反对票?问题不清楚吗?

0 投票
0 回答
141 浏览

c++ - Qt:如何将 SQLTableModel 从服务器发送到客户端

我正在开发一个客户端-服务器项目。在客户端,我有几个包含不同视图(QTableView、QListView)的 GUI 窗口。我可以使用以下方法向服务器发送消息:

然而,我的问题出现在我的服务器端。我的服务器将收到消息,通过几个步骤读取消息以确定从 SQL 数据库获取的必要信息,运行返回模型(QSqlTableModel,QSqlQueryModel)的查询,但随后应将相应的模型发送回客户。

我有什么办法可以将此模型发送回服务器吗?

0 投票
0 回答
496 浏览

combobox - PyQT QSqlRelationalDelegate 组合框

我有一个带有 QSqlRelationalTableModel 的 Qtableview 的表单。我希望其中两列是只读的,一列是组合框,一列是旋转框,但具有特定范围(没有负数。)

开箱即用,没有 QSqlRelationalDelegate,视图自动与第三列上的组合框和旋转框一起使用。在尝试将验证放入旋转框中,我发现它解决了前两列的只读问题。我唯一的问题是如何使用外键正确实现相关字段上的组合框。我已经能够显示一个组合框,但我看不到如何从外键填充选项。

如何填充组合框?

查看代码

0 投票
1 回答
796 浏览

c++ - QtQuick 在 TableView 中设置模型

所以我在 qmlfile 上有一个 tableview,我正在尝试从 c++ 设置模型。

我正在使用的模型是 QSqlTableModel,如果创建一个新的 tableview 并从 c++ 设置模型,它似乎可以工作,但是当我将模型传递给 qmlfile 中的模型属性时它不起作用,我想不出出为什么...

C++模型代码是:

如果在 c++ 中创建一个表格视图并分配模型,则返回一个有效的模型,但是当我这样做时:

它不起作用,它只是显示一个空表,即使当我调试 tableview 模型不为空时...

如果我添加:

就在 c++ 函数返回之前,我得到一个新窗口,其中包含一个正确显示该表的表...我尝试添加具有相同角色名的列,我在 c++ 中给出了它们也不会填充...。这是一个两张表的截图

在此处输入图像描述

0 投票
1 回答
58 浏览

sql - SQL Oracle 命令“缺少右括号”

每次我想创建这个表时,它都会显示缺少右括号。有人可以请检查我有什么问题。谢谢