【问题标题】:PyQt Automatic Repeating FormsPyQt 自动重复表单
【发布时间】:2010-11-10 00:34:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: python qt qt4 pyqt pyqt4


    【解决方案1】:

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

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

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

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

    【讨论】:

    • +1 这是关于我想用 PyQt 框架提出的解决方案。
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 2019-05-02
    • 2018-06-15
    • 1970-01-01
    • 2018-08-28
    • 2019-05-14
    • 2021-12-06
    • 2020-11-30
    相关资源
    最近更新 更多