2010-03-07 95 views
4

我開始學習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

回答

4

看看Camelot。它更多:)

我很高興地發現,當Q * View和Q *模型經驗產生的挫折和焦慮迫使我開始在SqlAlchemy的基礎上實現我自己的。當我找到了這個工具時,它實現了一半,比我甚至夢想的還要多得多,而且正在用QSqlRelationalTableModel掙扎。

+0

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