2017-03-07 28 views
1

私はMainUIというボタン、行編集、チェックボックスがあります。私が特定の状態で設定したウィジェットのほとんどはすべてのチェックボックスがデフォルトでチェックされ、すべての行編集フィールドのデフォルト値は「1.0」です。PyQt:リセットのデフォルト値を初期化する

現在、私は「すべてをリセット」というプッシュボタンを持っています。その名前が意味するように、これらのチェックボックスまたは行編集フィールドで行われた変更は、チェックされるように戻され、値は「1.0」になります。

値をリセットする方法の1つは、影響を受けたウィジェットの変数名を既定の状態とともに再入力する必要がある関数を作成することです。これは作成時と同様ですそれら。しかし、私はこれが実用的な方法だとは思わない。

私の質問はここにあります:デフォルト値を保存して元に戻す最良の方法は何ですか?

これまでのところ、私はメインUIの作成を含むクラスを作成しました:

class MainUI(QtGui.QDialog): 
    def __init__(self, parent=None): 
     QtGui.QDialog.__init__(self, parent) 
     self.setWindowTitle('UI MANAGER') 
     self.setModal(False) 
     self.init_main_ui() 
     self.resize(QtCore.QSize(600, 350)) 

    # UI-Configurations 
    def init_main_ui(self): 
     self.check1 = QtGui.QCheckBox("chk_box1") 
     self.check2 = QtGui.QCheckBox("chk_box2") 
     self.check3 = QtGui.QCheckBox("chk_box3") 
     self.check1.setChecked(True) 
     self.check2.setChecked(True) 
     self.check3.setChecked(True) 
     self.max_label = QtGui.QLabel("MIN Val") 
     self.max_input = QtGui.QLineEdit("0.0") 
     self.min_label = QtGui.QLabel("MAX Val") 
     self.min_input = QtGui.QLineEdit("1.0") 
     ... 

答えて

1

初期値は別の方法で設定されているように、最も簡単な方法は、既存のコードをリファクタリングすることです:

class MainUI(QtGui.QDialog): 
    ... 

    def init_main_ui(self): 
     self.check1 = QtGui.QCheckBox("chk_box1") 
     self.check2 = QtGui.QCheckBox("chk_box2") 
     self.check3 = QtGui.QCheckBox("chk_box3") 
     self.max_label = QtGui.QLabel("MIN Val") 
     self.max_input = QtGui.QLineEdit() 
     self.min_label = QtGui.QLabel("MAX Val") 
     self.min_input = QtGui.QLineEdit() 
     ... 
     self.reset_main_ui()   

    def reset_main_ui(self): 
     self.check1.setChecked(True) 
     self.check2.setChecked(True) 
     self.check3.setChecked(True) 
     self.max_input.setText("0.0") 
     self.min_input.setText("1.0") 
     ... 
関連する問題