class TaskOptionsGroupBox(QGroupBox): def __init__(self, parent): super(TaskOptionsGroupBox, self).__init__(parent) self.widget_layout = QFormLayout(self) self.setLayout(self.widget_layout) self.setTitle("Time") self.time_label = QLabel(self) self.time_label.setText("Execute: ") self.time_now = QRadioButton(self) self.time_now.setText("Immediately") self.time_now.setChecked(True) self.time_schedule = QRadioButton(self) self.time_schedule.setText("Schedule") self.schedule_select = QDateTimeEdit(self) self.schedule_select.setDateTime(QDateTime.currentDateTime()) self.schedule_select.setEnabled(False) self.user_activity_label = QLabel(self) self.user_activity_label.setText("User activity") self.user_activity_combo = QComboBox(self) self.user_activity_combo.addItems([ "0 - Disabled", "1 - Low", "2 - Normal", "3 - Medium", "4 - High", "5 - Very high" ]) self.widget_layout.addRow(self.time_label, None) self.widget_layout.addRow(self.time_now, None) self.widget_layout.addRow(self.time_schedule, self.schedule_select) self.widget_layout.addRow(self.user_activity_label, self.user_activity_combo) self.time_schedule.toggled.connect(self.on_time_schedule_toggled) @Slot(bool) def on_time_schedule_toggled(self, state): if state: self.schedule_select.setEnabled(True) else: self.schedule_select.setEnabled(False) def get_options(self): resp = { "user_activity": self.user_activity_combo.currentText().split(" - ")[0] } if self.time_now.isChecked(): resp["time"] = "now" elif self.time_schedule.isChecked(): resp["time"] = self.schedule_select.dateTime().toString() return resp