【问题标题】:Using PyQt4 - QTableView with SQLAlchemy using QSqlTableModel (or not)使用 PyQt4 - 使用 QSqlTableModel 的 QTableView 和 SQLAlchemy(或不使用)
【发布时间】:2011-01-24 18:35:42
【问题描述】:

我开始学习 Qt for python 并且在阅读这篇文章后我想知道: qt - pyqt QTableView not populating when changing databases. 如果有办法使用 SQLAlchemy 会话而不是(重新)打开数据库连接作为带有 Qt 的 QTableView 小部件的表模型。

有点像那样工作的东西:

databasePath = "base.sqlite" # used for production

engine = create_engine('sqlite:///' + databasePath, echo=True)

# initializing session :
Session = sessionmaker(bind=engine)
session = Session()

# Set up the user interface from Designer.
self.setupUi(self)

self.model = QSqlTableModel(self)
self.model.setTable("records")

self.model.setSort(FILEORDER, Qt.AscendingOrder)

self.model.setHeaderData(ID, Qt.Horizontal, QVariant("ID"))
self.model.setHeaderData(NAME, Qt.Horizontal, QVariant("Name"))
self.model.select()

self.tableView.setModel(self.model)

我们将不胜感激任何帮助,以及思考这个问题的新方法。

谢谢

【问题讨论】:

  • 好吧,我想我会开始努力的
  • 非常有趣的问题 :) 虽然如果你能以某种方式将 PyQt4 的类与其他类结合起来会很棒,但据我所知这是不可能的。尽管您可以尝试使用 SQLAlchemy 模拟 QSqlDatabase,但我认为这比它的价值更麻烦。
  • 好吧,我将尝试创建一个可以使用的新模型,只需将 SQLAlchemy 会话作为参数(可能还有 ORM 的类)。

标签: python sqlite sqlalchemy pyqt4


【解决方案1】:

看看Camelot。它做得更多:)

当 Q*View 和 Q*Model 体验产生的挫折和焦虑迫使我开始在 SqlAlchemy 的基础上实现我自己的时,我很高兴地找到了它。它已经实现了一半,当我找到这个工具时,它比我想象的要多得多,与 QSqlRelationalTableModel 作斗争。

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 1970-01-01
    • 2020-11-15
    • 2013-01-14
    • 1970-01-01
    • 2013-11-04
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多