Приветствую. Постараюсь объяснить что нужно: имеется ряд QComboBox'ов, заполняемых нужными значениями из общего файла настроек settings (в формате JSON), при изменении выбранного значения в каждом комбобоксе - соответствующий ключ в settings получает выбранное в комбобоксе значение:
self.repeatDelay = QSpinBox()
self.repeatDelay.setMaximum(300)
self.repeatDelay.setValue(settings["keyboard-repeat-delay"])
self.repeatDelay.valueChanged.connect(self.on_repeat_delay_value_changed)
self.repatRate = QSpinBox()
self.repatRate.setMaximum(100)
self.repatRate.setValue(settings["keyboard-repeat-rate"])
self.repatRate.valueChanged.connect(self.on_repeat_rate_value_changed)
self.caps_lock = QComboBox()
for item in ["disabled", "enabled"]:
self.caps_lock.addItem(item)
self.caps_lock.setCurrentText(settings["keyboard-capslock"])
self.caps_lock.activated.connect(self.on_caps_lock_text_changed)
self.num_lock = QComboBox()
for item in ["disabled", "enabled"]:
self.num_lock.addItem(item)
self.num_lock.setCurrentText(settings["keyboard-numlock"])
self.num_lock.activated.connect(self.on_num_lock_text_changed)
self.formLayout = QFormLayout()
self.formLayout.addRow(QLabel("Layout:"), self.layoutName)
self.formLayout.addRow(QLabel("Variant:"), self.variantName)
self.formLayout.addRow(QLabel("Shortcut:"), self.shortcutName)
self.formLayout.addRow(QLabel("Repeat delay:"), self.repeatDelay)
self.formLayout.addRow(QLabel("Repeat rate:"), self.repatRate)
self.formLayout.addRow(QLabel("CapsLock"), self.caps_lock)
self.formLayout.addRow(QLabel("NumLock"), self.num_lock)
self.setLayout(self.formLayout)
def on_repeat_delay_value_changed(self):
settings["keyboard-repeat-delay"] = self.repeatDelay.value()
def on_repeat_rate_value_changed(self):
settings["keyboard-repeat-rate"] = self.repatRate.value()
def on_caps_lock_text_changed(self):
settings["keyboard-capslock"] = self.caps_lock.currentText()
def on_num_lock_text_changed(self):
settings["keyboard-numlock"] = self.num_lock.currentText()