2017-03-07 312 views
1

我有一個MainUI,它有幾個按鈕,行編輯和複選框。我設定的大多數小工具都有一個給定的狀態 - 例如所有複選框默認都被選中,所有行編輯字段的默認值都是「1.0」。PyQt:初始化重置默認值

目前我有一個名爲「重置所有」的按鈕。正如其名稱所暗示的,在這些複選框或行編輯字段中所做的任何更改都將恢復爲檢查並具有值「1.0」。

我可以考慮重置值的一種方法是創建一個函數,我必須重新鍵入受影響小部件的變量名以及它們的默認狀態 - 這與我創建時的類似他們。但我不認爲這是一種實用的方法。

我在這裏的問題是:什麼是我存儲默認值,然後恢復它們的最佳方式?

到目前爲止,我已經創建了一個包含主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") 
     ...