2

我目前正在尝试将旧版 VBA/Microsoft Access 应用程序迁移到 Python 和 PyQt。我在迁移任何逻辑时都没有遇到任何问题,而且大多数表单也很容易。但是,我在应用程序最重要的部分——主要数据输入表单上遇到了问题。

表单基本上是与数据库中的字段相对应的一行文本框。用户只需在一个字段中输入数据,在下一个字段中输入标签并重复。当他到达记录/行的末尾时,他再次使用制表符,表单会自动创建一个新的空白行,让他再次开始输入数据。(实际上,它在当前新记录下方显示一个“空白”行,用户实际上也可以单击该行来开始新记录。)它还允许用户上下滚动以查看所有当前子集他正在处理的记录。

有没有办法在 PyQt 中复制这个功能?我还没有设法让 Qt 轻松做到这一点。Access 会自动处理它;不需要表格外的代码。在 PyQt 中是否那么容易(甚至接近),还是需要从头开始编程?

4

1 回答 1

3

您应该查看 QSqlTableModel 和 QTableView 对象。QSqlTableModel 提供了关系表的抽象,可以在 Qt 视图类中使用。以 QTableView 为例。您描述的功能只需使用这两个类即可轻松实现。

QSqlTableModel 还支持编辑数据库字段。

我猜你必须手动实现的唯一功能是表末尾的“TAB”,如果你想保留它来创建一个新行。

我对 Access 了解不多,但是使用 ODBC-SQL 驱动程序,您应该能够使用实际的 access 数据库进行开发或测试,这里有一些较旧的信息您可能需要考虑迁移到 Sqlite、Mysql 或其他实际的SQL 数据库。

于 2009-07-12T03:18:32.417 回答