使用PyQt4 - QTableView和SQLAlchemy使用QSqlTableModel(或不使用)

时间:2010-03-07 21:11:04

标签: python sqlite sqlalchemy pyqt4

我开始学习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)

非常感谢任何帮助,以及思考这个问题的新方法。

谢谢

1 个答案:

答案 0 :(得分:5)

看看Camelot。它做得更多:)

当Q * View和Q * Model经历所产生的沮丧和焦虑迫使我开始在SqlAlchemy的基础上实现自己的挫折和焦虑时,我很高兴地发现了它。当我发现仪器时,它实现了一半,比我梦寐以求的更多,与QSqlRelationalTableModel斗争。