私はピアノ学習ソフトウェアを開発しています。そのためには、ユーザーが登録したプロファイルの詳細を保存する必要があります。現在、python ファイル処理を使用していますが、いくつかの問題があります。では、XML または Qstring ファイルを使用するにはどうすればよいでしょうか。プロファイルごとに user_name(string),lesson_id(integer) を保存する必要があるとします。
1 に答える
これを解決する方法には複数のオプションがあります。どちらを使用するかを決定する最大の要因は、このデータにどのようにアクセスする必要があるかによって異なります。このデータがアプリの内部使用のみを目的としている場合は、XML などの一般的な形式に移行する必要はありません。
データベース
あなたは Qt でピアノ アプリケーションを作成しているため、適切なデータベース ソリューションは sqlite3 だけだと思います。PyQt には、この機能のための QtSql モジュールがあります。QSqlDatabaseを参照してください。これは、移植可能で組み込み型の sqlite3 で使用できます。クエリを実行する必要がない場合、このメソッドはやり過ぎになる可能性があります。保存したプロファイル ドキュメントをプルアップするだけでよい場合は、他の方法を参照してください。このデータベース アプローチでは、パッケージ化されたアプリケーションのサイズが少し大きくなります。
私は通常QSettingsを使用してインターフェイスに関する状態情報 (サイズ、位置、さまざまなウィジェットの最後の設定) を保存しますが、必要なものは何でも保存できます。現在のプラットフォームに適したユーザーの場所と形式が自動的に使用されます。
簡単な酸洗い
プロファイル ファイルを手動で保存するアプローチを使用したいだけの場合は、cPickleを使用してプロファイル データをピクルできます。
import cPickle
data = {'user_name': 'foo', 'lesson_id': 5}
with open('/path/to/profile.file', 'wb') as profile:
cPickle.dump(data, profile)
人間が読める形式が必要な場合は、ここで json を簡単に使用できます。
import json
data = {'user_name': 'foo', 'lesson_id': 5}
with open('/path/to/profile.file', 'wb') as profile:
json.dump(data, profile)
この場合の個人的な推奨事項は、QSettings を使用することです。自動的にユーザーベースであり、プロファイル データを保存するためのものです。