2016-08-03 8 views
0

私はPyQt4を使ってGUIインターフェースを実装しました。私のGUIインタフェースでは、ユーザが設定ファイルを変更できる(行編集で)設定タブがあります。これらの変数が実際に他のモジュールで使用されているときは、元の設定値から読み込みます。これは私が変数を使用するモジュールで私の設定ファイルを読んでいるかである:yaml設定ファイルをGUIで上書きする(Python)

with open("config.yaml", "r") as f: 
    config = yaml.safe_load(f) 

MIN_VOLTAGE = config['test1']['minVolt'] 
MAX_VOLTAGE = config['test1']['maxVolt'] 
MAX_CURR = config['test1']['maxCurr'] 

私の設定ファイルは次のようになります。

test1: 
    maxCurr: 5 
    maxVolt: 5 
    minVolt: -5 
test2: 
    maxVolt: 8 
    setCurr: 3 

どのように私はせずに新しい設定値を使用することができますGUIから抜け出す?

+0

yamlを使用する際のポイントは何ですか? [QSettings](http://doc.qt.io/qt-4.8/qsettings.html)を使う方がずっと簡単です。 – ekhumoro

+0

私の方法はなぜ機能しないのですか? – camerausb

答えて

0

おそらく値MIN_VOLTAGEを更新しないでください。 MAX_VOLTAGEMAX_CURRを作成したが、問題を特定するのに十分なコードが表示されていない。

YAMLファイルをロードすると(おそらくアプリケーションの起動時に)、YAMLファイルがロードされ、その後に値が入力されます。 YAMLファイルを上書きすると、アプリケーションの値が手動で変更されたり、YAMLファイルをそれらの値に再ロードしたりしない限り、アプリケーションの値は自動的に変更されません。

saveloadメソッドを持つクラスに設定値を格納し、そこから値を使用して、ユーザーが設定を変更したときにその値を更新するのが理想的です。変更後にsaveを呼び出し、アプリケーションの起動時にloadを呼び出します。

関連する問題