【发布时间】: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