2

QSettings を使用して、Linux を使用して ini ファイルとの間でパラメーターを保存およびロードします。

書きます:

QSettings settings("setup.ini", QSettings::IniFormat);
settings.beginGroup("Setup_Parameter");
settings.setValue("Parameter1",parameter1_value);
settings.sync();
settings.endGroup();

読んだ:

QSettings settings("setup.ini", QSettings::IniFormat);
settings.beginGroup("Setup_Parameter");
parameter1_value = settings.value("Parameter1","0").toInt();
settings.endGroup();

システムがオンの間、setup.ini は正常に動作します。電源をオフにしてから再度オンにしてシステムを再起動すると、setup.ini ファイルが完全に空になることがあります。私は5回のうち3回の試行で言うでしょう。

アプリケーションとルート/設定パスにファイルを保存しようとしました。書き込み後にファイルをコピーするだけでなく、電源をオフにしてからオンにした後もコピーは空です。

setup.ini ファイルの内容が失われるのはなぜですか? 再起動中にパラメータを保持する必要があります。

4

3 に答える 3

1

書き込み関数の後に sync() が必要でした:

QSettings settings("setup.ini", QSettings::IniFormat);
settings.beginGroup("Setup_Parameter");
settings.setValue("Parameter1",parameter1_value);
settings.endGroup();
settings.sync();
sync();
于 2013-03-17T08:49:36.673 に答える
0

QSettings の「sync」機能の後に「sync」Linux コマンドを呼び出す同じ問題を修正しました。

于 2014-10-07T10:21:52.703 に答える
0

同じ問題が発生しています。QSettings ファイルは、電源のリセット後に消去されることがあります。ファイルは残りますが、サイズは 0 バイトです。QT アプリケーションは、ARM プロセッサ上の Debian Squeeze で実行されています。ファイルシステム、OS、およびアプリケーションはすべて 4G SD カード上にあります。

設定ファイルを変更した後に同期機能を呼び出すようにアプリケーションを修正しました。しかし、昨夜電源をリセットしたところ、ユニットの 1 つ (約 60 台が稼働中) の設定が失われました。QTEmbedded-4.8.2 を実行していますが、これを修正する方法がわかりません。

于 2013-12-18T18:46:11.823 に答える