예제 #1
0
 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()
예제 #2
0
    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))
예제 #3
0
    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()
예제 #4
0
    def reserve(self, item: QTableWidgetItem):
        if item.column() == 0:
            if item.text() == "":
                return

            提供日 = item.data(Qt.UserRole)
            self.ui.close()
            self.予約画面.提供日 = 提供日
            self.予約画面.plot_data()
예제 #5
0
 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)
예제 #6
0
    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()
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 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()
예제 #11
0
    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},
        )
예제 #12
0
 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)
예제 #13
0
 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))
예제 #14
0
    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)
예제 #15
0
파일: app.py 프로젝트: Inna99/magicDB
    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()
예제 #16
0
파일: lrc.py 프로젝트: ky-sfms/Yuye
 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()
예제 #17
0
 def tableWidget_itemChanged(self, item: QTableWidgetItem):
     self.ui.tableWidget.resizeColumnToContents(item.column())