python - PyQt:初始化重置的默认值

标签 python pyqt initialization pyqt4 default

我有一个 MainUI,其中有一些按钮、行编辑和复选框。我设置的大多数小部件都具有给定状态 - 例如默认情况下会选中所有复选框,并且所有行编辑字段的默认值为“1.0”。

目前我有一个名为“重置所有内容”的按钮。顾名思义,在这些复选框或行编辑字段中所做的任何更改都将恢复为选中状态,并且值为“1.0”。

我可以想到重置值的一种方法是创建一个函数,在该函数中我必须重新输入受影响的小部件的变量名称及其默认状态 - 这与我创建它们时所做的类似。但我认为这不是一个实用的方法。

我的问题是:存储默认值然后恢复它们的最佳方法是什么?

到目前为止,我已经创建了一个包含主用户界面创建的类:

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")
        ...

最佳答案

最简单的方法是重构现有代码,以便通过单独的方法设置初始值:

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")
        ...

关于python - PyQt:初始化重置的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42638111/

相关文章:

python - 挑战蛮力方法的谜题?

python - 如何在 numpy 中有效地实现 x[i][j] = y[i+j] ?

python - 使用 getOpenFileNames 填充 QListWidget

java - 类构造函数中的字段初始化 : direct or through "setter"?

c++ - C++中结构数组的初始化

python - Discord python 解禁成员

python - 使用平方根法求素数

python - PyQt 5 QTableWidget.cellClicked 信号不工作

python - 使用 PyQt5 渲染 Markdown

c++ - 如何确定用空大括号初始化程序调用的构造函数?