2009-07-11 30 views
2

我目前正试图将遗留的VBA/Microsoft Access应用程序迁移到Python和PyQt。我没有任何迁移任何逻辑的问题,并且大多数表单也很简单。但是,我在应用程序的最重要部分 - 主要数据输入表单中遇到了问题。PyQt自动重复表单

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

有没有办法在PyQt中复制这个功能?我还没有设法找到一种让Qt轻松做到这一点的方法。 Access自动处理它;表单之外不需要代码。在PyQt(甚至关闭)中是否容易,或者这是否需要从头开始编程?

回答

3

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

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

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

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

+0

+1这是关于我想出的PyQt框架的解决方案。 – ChristopheD 2009-07-12 06:00:06