質問

私は現在、PythonとPyQtはにレガシーVBA /、Microsoft Accessアプリケーションを移行しようとしています。私はロジックのいずれかを移行問題はなかったてきた、とフォームのほとんどは、同様に、スナップされています。しかし、私は、アプリケーションの最も重要な部分に問題がヒットしました - 。主なデータ入力フォーム

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

のPyQtでこの機能を複製する方法はありますか?私はQtは簡単にこれを行うために取得する方法を見つけるために管理していません。アクセスは、自動的にそれの世話をします。フォーム外ないコードが必要とされません。それはPyQtはで簡単に(あるいは近い)である、またはゼロからプログラムする必要になるだろう、この何ですか?

役に立ちましたか?

解決

あなたはQSqlTableModel、およびQTableViewオブジェクトになります。 QSqlTableModelは、Qtのビュークラスの上で内部で使用することができますリレーショナルテーブルの抽象化を提供しています。例えばQTableView。あなたが記述の機能は、単にこれらの2つのクラスを使用することにより、適度な努力で実現することができます。

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

私の推測では、手動で実装する必要があります唯一の機能は、あなたがそれを維持したい場合は、新しい行を作成するには、テーブルの末尾に「TAB」である。

私はアクセスについてはあまり知りませんが、あなたが実際のアクセスあなたの開発のためのデータベースまたはテストすることができ、使用する必要がありますODBC-SQLドライバを使用すると、一部の古い情報<のhref = "HTTPがあります://www.qtcentreは、 .ORG /フォーラム/ F-QT-プログラミング-2 / T-ODBC-と-MS-アクセス-6485.html」のrel = "nofollowをnoreferrer">ここを、あなたはSqliteを、MySQLへの移行を検討することをお勧めしますまたは別の実際のSQLデータベースます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top