2009-07-11 15 views
2

私は現在、従来のVBA/Microsoft AccessアプリケーションをPythonとPyQtに移行しようとしています。私はロジックの移行に問題はなく、フォームのほとんどはスナップされています。しかし、私は主なデータ入力フォームであるアプリケーションの最も重要な部分について問題を起こしました。PyQt自動繰り返しフォーム

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

この機能をPyQtに複製する方法はありますか? Qtにこれを簡単にやり遂げる方法を見つけることはできませんでした。アクセスはそれを自動的に処理します。フォームの外側にコードは必要ありません。それはPyQt(または近く)で簡単なのですか?これをゼロからプログラムする必要があるのでしょうか?

答えて

3

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

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

あなたが手動で実装する必要がある唯一の機能は、テーブルの末尾に新しい行を作成してそれを保持したいということです。

ODBC-SQLドライバを使用して開発やテストに実際のアクセスデータベースを使用できるようにするには、古い情報があるhereがある場合は、Sqliteに移行することを検討してください。 Mysqlまたは別の実際のSQLデータベース。

+0

+1これは私がPyQtフレームワークを思いつく解決策です。 – ChristopheD

関連する問題