def add_subject(self, setup=None, subject=None): '''Add row to table allowing extra subject to be specified.''' setup_cbox = QtGui.QComboBox() setup_cbox.addItems(self.available_setups if self. available_setups else ['select setup']) setup_cbox.activated.connect(self.update_available_setups) remove_button = QtGui.QPushButton('remove') ind = QtCore.QPersistentModelIndex(self.model().index( self.n_subjects, 2)) remove_button.clicked.connect(lambda: self.remove_subject(ind.row())) add_button = QtGui.QPushButton('add') add_button.clicked.connect(self.add_subject) self.setCellWidget(self.n_subjects, 0, setup_cbox) self.setCellWidget(self.n_subjects, 2, remove_button) self.insertRow(self.n_subjects + 1) self.setCellWidget(self.n_subjects + 1, 2, add_button) if setup: cbox_set_item(setup_cbox, setup) if subject: subject_item = QtGui.QTableWidgetItem() subject_item.setText(subject) self.setItem(self.n_subjects, 1, subject_item) self.n_subjects += 1 self.update_available_setups() null_resize(self)
def connect_buttons(self, row): ind = QtCore.QPersistentModelIndex(self.model().index(row, 2)) self.cellWidget(row, 0).clicked.connect( lambda: self.swap_with_above(ind.row())) # up arrow connection self.cellWidget(row, 1).clicked.connect( lambda: self.swap_with_below(ind.row())) # down arrow connection self.cellWidget(row, 10).clicked.connect( lambda: self.remove_row(ind.row())) # remove button connection
def add_variable(self, var_dict=None): '''Add a row to the variables table.''' variable_cbox = QtGui.QComboBox() variable_cbox.activated.connect(self.update_available) subject_cbox = QtGui.QComboBox() subject_cbox.activated.connect(self.update_available) persistent = TableCheckbox() summary = TableCheckbox() remove_button = QtGui.QPushButton('remove') ind = QtCore.QPersistentModelIndex(self.model().index( self.n_variables, 2)) remove_button.clicked.connect(lambda: self.remove_variable(ind.row())) remove_button.setIcon(QtGui.QIcon("gui/icons/remove.svg")) add_button = QtGui.QPushButton(' add ') add_button.setIcon(QtGui.QIcon("gui/icons/add.svg")) add_button.clicked.connect(self.add_variable) self.insertRow(self.n_variables + 1) self.setCellWidget(self.n_variables, 0, variable_cbox) self.setCellWidget(self.n_variables, 1, subject_cbox) self.setCellWidget(self.n_variables, 3, persistent) self.setCellWidget(self.n_variables, 4, summary) self.setCellWidget(self.n_variables, 5, remove_button) self.setCellWidget(self.n_variables + 1, 5, add_button) if var_dict: # Set cell values from provided dictionary. variable_cbox.addItems([var_dict['name']]) subject_cbox.addItems([var_dict['subject']]) value_item = QtGui.QTableWidgetItem() value_item.setText(var_dict['value']) self.setItem(self.n_variables, 2, value_item) persistent.setChecked(var_dict['persistent']) summary.setChecked(var_dict['summary']) else: variable_cbox.addItems(['select variable'] + self.available_variables) if self.n_variables > 0: # Set variable to previous variable if available. v_name = str( self.cellWidget(self.n_variables - 1, 0).currentText()) if v_name in self.available_variables: cbox_set_item(variable_cbox, v_name) subject_cbox.addItems(self.available_subjects(v_name)) self.n_variables += 1 self.update_available() null_resize(self)
def add_subject(self, setup=None, subject=None, do_run=None): '''Add row to table allowing extra subject to be specified.''' setup_cbox = QtGui.QComboBox() setup_cbox.addItems(self.available_setups if self. available_setups else ['select setup']) if self.unallocated_setups: setup_cbox.setCurrentIndex( self.available_setups.index(self.unallocated_setups[0])) setup_cbox.activated.connect(self.update_available_setups) remove_button = QtGui.QPushButton('remove') remove_button.setIcon(QtGui.QIcon("gui/icons/remove.svg")) ind = QtCore.QPersistentModelIndex(self.model().index( self.n_subjects, 2)) remove_button.clicked.connect(lambda: self.remove_subject(ind.row())) add_button = QtGui.QPushButton('add') add_button.setIcon(QtGui.QIcon("gui/icons/add.svg")) add_button.clicked.connect(self.add_subject) run_checkbox = TableCheckbox() if do_run == None: run_checkbox.setChecked( True) #new subjects are set to "Run" by default else: run_checkbox.setChecked(do_run) self.setCellWidget(self.n_subjects, 0, run_checkbox) self.setCellWidget(self.n_subjects, 1, setup_cbox) self.setCellWidget(self.n_subjects, 3, remove_button) self.insertRow(self.n_subjects + 1) self.setCellWidget(self.n_subjects + 1, 3, add_button) if setup: cbox_set_item(setup_cbox, setup) if subject: subject_item = QtGui.QTableWidgetItem() subject_item.setText(subject) self.setItem(self.n_subjects, 2, subject_item) self.n_subjects += 1 self.update_available_setups() null_resize(self)