這個專案是用 Python 撰寫的,將有一個 sqlite3 資料庫。
我想使用 Python 的sqlite3模塊打開 sqlite3 資料庫。但我也想從PySide6.QtSql模塊中獲得功能。
PySide 的檔案顯示了 Postgres 發生這種情況的一個示例。
con = PQconnectdb("host=server user=bart password=simpson dbname=springfield")
drv = QPSQLDriver(con)
db = QSqlDatabase.addDatabase(drv) # becomes the default() connection()
query = QSqlQuery()
query.exec("SELECT NAME, ID FROM STAFF")
我嘗試使用,但無法匯入它,并且在我的計算機上QSQLiteDriver找不到所需的檔案。qsql_sqlite.cpp
該檔案提到鏈接某些檔案。是否可以在QSQLiteDriver不從源代碼編譯 PySide6 的情況下使用?
uj5u.com熱心網友回復:
這些驅動程式類僅在 C 中可用。PySide 或 PyQt 無法包裝它們,因為驅動程式是作為插件實作的。也無法通過 Python 使用 Qt 類直接注冊任何型別的擴展、配接器、聚合器等。它只能通過 C 來完成。
Python 的 SQLite 實作通常比 Qt 靈活得多——它唯一不能提供的真正重要的東西是模型。為此,您有兩個主要的可能性:使用QStandardItemModel并直接從查詢結果中填充它;或撰寫一個自定義模型(即基于QAbstractItemModel,帶有fetchMore),它應該給你等效的東西QSqlQueryModel(但顯然不是基于QSqlQuery)。選擇其中一個的主要原因是性能。AQStandardItemModel對于較小的結果集可以正常作業,但是QStandardItem為每一行創建 a 的開銷在超過一萬個專案左右時可能會開始變得明顯(取決于列數、本地系統資源等)。
其他低級 Qt SQL 類可能不值得打擾,因為 Python 在大多數情況下已經提供了類似的功能。如果您對 Python 的 sqlite 實作有一定的了解,則應該可以使用基本模型將其與 Qt GUI 相當容易地集成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/519845.html
標籤:Pythonsqlitepyqtpysideqtsql
