PyQt:初始化重置的默认值
Posted
技术标签:
【中文标题】PyQt:初始化重置的默认值【英文标题】:PyQt: Initialize default values for reset 【发布时间】:2017-03-07 00:32:21 【问题描述】:我有一个MainUI
,它有几个按钮、行编辑和复选框。我用给定状态设置的大多数小部件 - 例如默认选中所有复选框,所有行编辑字段的默认值为“1.0”。
目前我有一个名为“重置一切”的按钮。顾名思义,在这些复选框或行编辑字段中所做的任何更改都将恢复为选中状态,并且值为“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")
...
【讨论】:
以上是关于PyQt:初始化重置的默认值的主要内容,如果未能解决你的问题,请参考以下文章
如何在单击重置时将 Material UI Autocomplete 重置为默认值/初始值?