2

現在、レガシー VBA/Microsoft Access アプリケーションを Python と PyQt に移行しようとしています。ロジックの移行に問題はなく、ほとんどのフォームも簡単に移行できました。しかし、アプリケーションの最も重要な部分であるメイン データ入力フォームで問題が発生しました。

フォームは基本的に、データベース内のフィールドに対応するテキスト ボックスの行です。ユーザーはフィールドにデータを入力し、タブで次のフィールドに移動して繰り返すだけです。レコード/行の最後に来たら、もう一度タブを押すと、フォームは自動的に新しい空白行を作成し、データの入力を再開します。(実際には、現在の新しいレコードの下に「空白」の行が表示され、ユーザーは実際にクリックして新しいレコードを開始することもできます。) また、ユーザーは上下にスクロールして現在のサブセットをすべて表示できます。彼が取り組んでいるレコードの。

PyQt でこの機能を複製する方法はありますか? Qtでこれを簡単に行う方法を見つけることができませんでした。Access が自動的に処理します。フォーム外のコードは必要ありません。PyQt で簡単に (またはそれに近い) か、それともゼロからプログラムする必要があるか?

4

1 に答える 1

3

QSqlTableModel と QTableView オブジェクトを調べる必要があります。QSqlTableModel は、Qt ビュー クラス内で使用できるリレーショナル テーブルの抽象化を提供します。たとえば、QTableView。あなたが説明する機能は、これら2つのクラスを使用するだけで、適度な労力で実装できます.

QSqlTableModel は、データベース フィールドの編集もサポートしています。

手動で実装する必要がある唯一の機能は、テーブルの最後にある「TAB」で、それを保持したい場合に新しい行を作成することだと思います。

私は Access についてあまり知りませんが、ODBC-SQL ドライバーを使用すると、実際の Access データベースを開発またはテストに使用できるはずです。ここには古い情報がいくつかあります。Sqlite、Mysql、または別の実際のデータベースへの移行を検討することをお勧めします。 SQL データベース。

于 2009-07-12T03:18:32.417 に答える