def editcell(self,item:QtWidgets.QTableWidgetItem): col = self.db.getcolumns()[item.column()] row = item.row() + 1 val = item.text() print('bpvtytyj ',row,col,val) self.db.edit(value=val,idvalue=row,column=col,idcolumn='rowid') self.ui.tableWidget.resizeColumnsToContents()
def _create_input_cell(self, table: QTableWidget, item: QTableWidgetItem): column = item.column() row = item.row() checkable_widget = QLineEdit() checkable_widget.setText(item.text()) table.setCellWidget(row, column, checkable_widget) checkable_widget.editingFinished.connect(lambda: self._edit_input_cell_done(item, checkable_widget, table))
def _edit_input_cell_done(self, item: QTableWidgetItem, checkable_widget: QLineEdit, table: QTableWidget): old_value = item.text() new_value = checkable_widget.text() table.removeCellWidget(item.row(), item.column()) if item.column() == BinningColumns.SBinName(): if not self._bin_container.does_bin_exist(new_value): self.parent._update_feedback('bin is already defined') return self._bin_container.update_bin_name(old_value, new_value) item.setText(new_value) self.parent._update_binning_tree_items() return elif item.column() == BinningColumns.SBin(): if self._bin_container.does_bin_num_exist(new_value): self.parent._update_feedback('bin number is already occupied') return try: sbin = int(new_value) if sbin in range(ALARM_BIN_MIN, ALARM_BIN_MAX): self.parent._update_feedback(f'range {(ALARM_BIN_MIN, ALARM_BIN_MAX)} is reserved for internal use') item.setText(old_value) group_item = self.binning_table.item(item.row(), BinningColumns.SBinGroup()) if sbin in range(1, 10): group_item.setText(BINGROUPS[0]) else: group_item.setText(BINGROUPS[1]) self.parent._verify() except Exception: self._update_feedback('soft bin must be of type integral') item.setText(old_value) return elif item.column() == BinningColumns.SBinGroup(): BINGROUPS.append(new_value) item.setText(new_value) self._update_row_content_binning_table(item) self.parent._verify()
def reserve(self, item: QTableWidgetItem): if item.column() == 0: if item.text() == "": return 提供日 = item.data(Qt.UserRole) self.ui.close() self.予約画面.提供日 = 提供日 self.予約画面.plot_data()
def __properties_itemClicked(self, item: QtWidgets.QTableWidgetItem): "Properties TableWidget item clicked" if item.column() == 1: for row in range(item.tableWidget().rowCount()): if item is item.tableWidget().item(row, 1): if item.uiProperty(): # show UI and wait for OK or Cancel # OK # property changed by UI print(item.propertyName) self.__propertyChanged(item.propertyName)
def item_changed(self, item: QTableWidgetItem): """Update the planner to mark whether or not the assignment is completed """ assignment_id = int(self.tablewidget_assignments.cellWidget(item.row(), 1).get_data()) # If the checkbox is checked / Unchecked if item.column() == 0: self.app.planner.update_assignment(assignment_id, "completed", int(item.checkState() == 2)) self.app.refresh()
def check_number_value(self, item: QTableWidgetItem): """A method that makes sure that the entered value can be turned to float. If not, change the current value to 0.""" if item is None: self.log('Item (%s, %s) is None' %(item.row(), item.column())) elif item.column() < 2: try: float(item.text()) except ValueError as e: self.log('Invalid value "%s" entered, value changed to 0.' %item.text()) item.setText('0') finally: if None not in (self.dlg.tableWidget.item(item.row(), 0), self.dlg.tableWidget.item(item.row(), 1), self.dlg.tableWidget.item(item.row(), 2)) and ' - ' in self.dlg.tableWidget.item(item.row(), 2).text(): legend = self.dlg.tableWidget.item(item.row(), 2).text() legend_split = legend.split(' - ') legend_split[item.column()] = item.text() legend = ' - '.join(legend_split) self.dlg.tableWidget.item(item.row(), 2).setText(legend)
def _table_item_changed(self,item:QtWidgets.QTableWidgetItem): if item.column() == 0: circuit:Circuit = self.tableWidget.item(item.row(),1).data(Qt.UserRole) if item.checkState() == Qt.Checked: for node in circuit.nodes(): if node.train() is not None: node.train().highlightItems(containLink=True) else: for node in circuit.nodes(): if node.train() is not None: node.train().unHighlightItems(containLink=True)
def _item_changed(self, item: QtWidgets.QTableWidgetItem): """ 2019.10.21添加 """ if item is None or item.column() != 4: return train = self.trainTable.item(item.row(), 0).data(-1) if train is None: return on = bool(item.checkState()) train.setIsShow(on) self.trainShowChanged.emit(train, on)
def on_item_double_clicked(self, item: QTableWidgetItem): if item.column() != 1: return source_file = os.path.join(self.__sourceProject['Path'], item.text()) target_file = os.path.join(self.__targetProject['Path'], item.text()) if not os.path.exists(target_file): return p = subprocess.Popen('TortoiseMerge.exe ' + source_file + ' ' + target_file, stdout=subprocess.PIPE, shell=True) p.communicate()
def _handle_item_edit(self, item: QtWidgets.QTableWidgetItem): if not item.column() == 1: return current_specifications = copy.copy( self._lobby_view.lobby.game_options['pool_specification']) current_specifications[item.row()]['amount'] = int(item.data(0)) self._lobby_view.lobby_model.set_options( self._lobby_view.lobby.name, {'pool_specification': current_specifications}, )
def open_color_dialog(self, item: QTableWidgetItem): """A method that creates a color dialog window and shows it when the user presses the 'Color' button. At the confirmation of the color dialog, set the color in the current row.""" if item.column() == 3: initial_color = item.background().color() color = QgsColorDialog.getColor( initialColor=initial_color, parent=self.dlg.tableWidget, allowOpacity=False ) self.log(str(color.getRgb())) if color.isValid(): item.setBackground(color)
def _table_item_changed(self, item: QtWidgets.QTableWidgetItem): if self.updating: return # print("currentWidget::table_item_changed",item.text(),item.row(),item.column()) row = item.row() if item.column() == 3: # 营业列变化 itemStation = self.timeTable.item(row, 0) if item.checkState() == Qt.Checked: itemStation.setForeground(QtGui.QBrush(Qt.red)) elif self.timeTable.cellWidget( row, 1).time() != self.timeTable.cellWidget(row, 2).time(): itemStation.setForeground(QtGui.QBrush(Qt.blue)) else: itemStation.setForeground(QtGui.QBrush(Qt.black))
def set_value_to_user(self, a_item: QtWidgets.QTableWidgetItem): self.ui.limits_table.blockSignals(True) try: if a_item.column() == ScaleLimitsDialog.Column.LIMIT: value_f = utils.parse_input(a_item.text()) signal_type = clb.SignalType( self.ui.limits_table.cellWidget( a_item.row(), ScaleLimitsDialog.Column.SIGNAL_TYPE).currentIndex()) units = clb.signal_type_to_units[signal_type] value_f = clb.bound_amplitude(value_f, signal_type) value_str = utils.value_to_user_with_units(units)(value_f) a_item.setText(value_str) a_item.setData(QtCore.Qt.UserRole, value_str) except ValueError: a_item.setText(a_item.data(QtCore.Qt.UserRole)) self.ui.limits_table.blockSignals(False)
def item_changed(self, item: QtWidgets.QTableWidgetItem): if self.column_name[item.column()] == 'title': field = {self.column_name[item.column()]: item.text()} # field for change {id: 'value'} result = Movies.update(**field).where(Movies.id == self.id_dict[item.row()]).execute() # result = Movies.update(title=item.text()) не работает elif self.column_name[item.column()] == 'production_year': try: # подключить виджет для корректного ввода данных? field = {self.column_name[item.column()]: item.text()} result = Movies.update(**field).where(Movies.id == self.id_dict[item.row()]).execute() except Exception: # peewee. self.create_qmessage_box_without_choice('', "Неправильый формат даты\nправильно ГГГГ-ММ-ДД") elif self.column_name[item.column()] == 'viewed': field = {self.column_name[item.column()]: item.text() == 'True'} result = Movies.update(**field).where(Movies.id == self.id_dict[item.row()]).execute()
def tc(self, item: QtWidgets.QTableWidgetItem): y = item.column() if y == 0: self.sendnext.emit(-1) if y == 1: self.sendnext.emit(0) if y == 2: self.sendnext.emit(1) if y == 3: f = self.label.font() f.setPointSize(f.pointSize() - 2) self.label.setFont(f) self.label_2.setFont(f) if y == 4: f = self.label.font() f.setPointSize(f.pointSize() + 2) self.label.setFont(f) self.label_2.setFont(f) if y == 5: c = self.cursor().pos() self.set = Ui_pop(['设置颜色'], c.x(), c.y()) self.set.sendclickitem.connect(self.changeset) if y == 6: self.close()
def tableWidget_itemChanged(self, item: QTableWidgetItem): self.ui.tableWidget.resizeColumnToContents(item.column())