2009-07-11 72 views
2

我目前正試圖將遺留的VBA/Microsoft Access應用程序遷移到Python和PyQt。我沒有任何遷移任何邏輯的問題,並且大多數表單也很簡單。但是,我在應用程序的最重要部分 - 主要數據輸入表單中遇到了問題。PyQt自動重複表單

該表格基本上是一行文本框,對應於數據庫中的字段。用戶只需將數據輸入到一個字段中,然後重複下一個標籤。當他到達記錄/行的末尾時,他再次選中,表單會自動創建一個新的空行,以便他再次輸入數據。 (實際上,它在當前新記錄下方顯示一個「空白」行,用戶實際可以點擊以開始新記錄。)它還允許用戶上下滾動以查看當前所有子集他正在處理的記錄。

有沒有辦法在PyQt中複製這個功能?我還沒有設法找到一種讓Qt輕鬆做到這一點的方法。 Access自動處理它;表單之外不需要代碼。在PyQt(甚至關閉)中是否容易,或者這是否需要從頭開始編程?

回答

3

你應該看看QSqlTableModel和QTableView對象。 QSqlTableModel提供了一個可以在Qt視圖類中使用的關係表的抽象。例如一個QTableView。您所描述的功能只需使用這兩個類即可輕鬆實現。

QSqlTableModel還支持對數據庫字段進行編輯。

我猜你必須手動實現的唯一功能是在表格末尾的「TAB」來創建一個新行,如果你想保持這一點。

我對Access的瞭解不多,但是使用ODBC-SQL驅動程序,您應該可以使用實際訪問數據庫進行開發或測試,但有一些舊信息here,您可能需要考慮轉移到Sqlite, Mysql或其他實際的SQL數據庫。

+0

+1這是關於我想出的PyQt框架的解決方案。 – ChristopheD 2009-07-12 06:00:06