class ConfigSetting(QWidget): def __init__(self, settingName, settingType, **kwargs): super().__init__() self.settingType = settingType mainLayout = QHBoxLayout() self.setLayout(mainLayout) mainLayout.addWidget(QLabel(settingName)) if settingType == "check": self.settingInput = QCheckBox() self.settingInput.setChecked(True) elif settingType == "line": self.settingInput = QLineEdit() elif settingType == "dropdown": self.settingInput = QComboBox() if kwargs.get("dropdownOptions", None): for i in kwargs["dropdownOptions"]: self.settingInput.addItem(i) else: print("No options were provided for setting \'" + settingName + "\'") mainLayout.addWidget(self.settingInput) if kwargs.get("tooltip", None): self.setToolTip(kwargs["tooltip"]) def setSetting(self, setting): if self.settingType == "check": if setting == "1": self.settingInput.setChecked(True) elif setting == "0": self.settingInput.setChecked(False) elif self.settingType == "line": self.settingInput.setText(setting) elif self.settingType == "dropdown": self.settingInput.setCurrentIndex( self.settingInput.findText(setting)) def getSetting(self): if self.settingType == "check": if self.settingInput.isChecked(): return "1" else: return "0" elif self.settingType == "line": return self.settingInput.text() elif self.settingType == "dropdown": return self.settingInput.currentText()