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

问题描述:

我开始学习Qt的Python和我想知道看完这篇文章后: qt - pyqt QTableView not populating when changing databases.如果有一种方法使用SQLAlchemy会议,而不是(re- )使用Qt的QTableView小部件作为表模型打开数据库连接。使用PyQt4 - QTableView与SQLAlchemy使用QSqlTableModel(或不)

的东西,将工作有点像:

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) 

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

谢谢

+0

嗯,我想我会开始对随后 – 2010-03-08 23:33:55

+0

非常有趣的问题:) 工作虽然这将是巨大的,如果你能以某种方式与其他类结合PyQt4中的类,这是不可能的,因为据我所知。虽然你可以尝试用SQLAlchemy模拟一个QSqlDatabase,但我认为它比它的价值更麻烦。 – Wolph 2010-03-12 01:24:32

+0

嗯,我只是尝试创建一个新的模型,可以使用只是给SQLAlchemy会话作为参数(也许ORM的类)。 – 2010-03-12 08:28:06

看看Camelot。它更多:)

我很高兴地发现,当Q * View和Q *模型经验产生的挫折和焦虑迫使我开始在SqlAlchemy的基础上实现我自己的。当我找到了这个工具时,它实现了一半,比我甚至梦想的还要多得多,而且正在用QSqlRelationalTableModel挣扎。

+0

谢谢!它看起来真的很棒! – 2010-11-13 23:07:39