0

私はピアノ学習ソフトウェアを開発しています。そのためには、ユーザーが登録したプロファイルの詳細を保存する必要があります。現在、python ファイル処理を使用していますが、いくつかの問題があります。では、XML または Qstring ファイルを使用するにはどうすればよいでしょうか。プロファイルごとに user_name(string),lesson_id(integer) を保存する必要があるとします。

4

1 に答える 1

2

これを解決する方法には複数のオプションがあります。どちらを使用するかを決定する最大の要因は、このデータにどのようにアクセスする必要があるかによって異なります。このデータがアプリの内部使用のみを目的としている場合は、XML などの一般的な形式に移行する必要はありません。

データベース

あなたは Qt でピアノ アプリケーションを作成しているため、適切なデータベース ソリューションは sqlite3 だけだと思います。PyQt には、この機能のための QtSql モジュールがあります。QSqlDatabaseを参照してください。これは、移植可能で組み込み型の sqlite3 で使用できます。クエリを実行する必要がない場合、このメソッドはやり過ぎになる可能性があります。保存したプロファイル ドキュメントをプルアップするだけでよい場合は、他の方法を参照してください。このデータベース アプローチでは、パッケージ化されたアプリケーションのサイズが少し大きくなります。

Q設定

私は通常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 を使用することです。自動的にユーザーベースであり、プロファイル データを保存するためのものです。

于 2012-04-08T16:29:31.323 に答える