def set_widget_state(widget: QWidget, config: dict, widget_name=None): try: if widget_name is None: widget_name = widget.objectName() if widget_name not in config: return if isinstance(widget, QLineEdit): widget.setText(config[widget_name]) elif isinstance(widget, QComboBox): widget.setUpdatesEnabled(False) bs = widget.blockSignals(True) widget.clear() widget.addItems(config[widget_name]['items']) widget.blockSignals(bs) widget.setUpdatesEnabled(True) widget.setCurrentIndex(config[widget_name]['index']) # Force index change event in the case of index=0 if config[widget_name]['index'] == 0: widget.currentIndexChanged.emit(0) elif isinstance(widget, QtWidgets.QAbstractButton): widget.setChecked(config[widget_name]) elif isinstance(widget, QPlainTextEdit) or isinstance( widget, QtWidgets.QTextEdit): widget.setPlainText(config[widget_name]) elif isinstance(widget, QtWidgets.QSpinBox) or isinstance( widget, QtWidgets.QDoubleSpinBox): widget.setValue(config[widget_name]) except: return
def __clearMainWindow_(self, widget: QWidget) -> None: if isinstance(widget, QLineEdit): widget.clear() elif isinstance(widget, QSpinBox): widget.setValue(0) elif isinstance(widget, QPlainTextEdit): widget.setPlainText('') elif isinstance(widget, QCheckBox): widget.setChecked(False) elif isinstance(widget, QComboBox): widget.setCurrentIndex(0) elif isinstance(widget, QTableView): model = widget.model() model.clear() else: l = widget.children() for w in l: self.__clearMainWindow_(w)