def item_changed(self, Qitem: QTableWidgetItem): if not Qitem.text() or Qitem.column() == 0: return try: int(Qitem.text()) except ValueError: Msgbox = QMessageBox() Msgbox.setText("Error, Pixel ID must be an integer!") Msgbox.exec() Qitem.setData(Qt.DisplayRole, None)
def set_item_slot(self, tick: dict): local_symbol = tick['local_symbol'] if local_symbol not in self.cur_ticks: return if local_symbol not in self.cur_row_map: # 不在table ,插入row self.cur_row_map.append(local_symbol) self.tableWidget.insertRow(self.item_row) self.insert_(self.item_row, tick) self.item_row += 1 else: # 已在table中 ,更新对应row row = self.cur_row_map.index(local_symbol) for i, col in enumerate(market_table_column): try: if col == "last_price": # 对最新价动态颜色表示涨跌 old = self.tableWidget.item(row, i) if old: # 非空 old = float(old.text()) new = float(tick[col]) difference = new - old item = QTableWidgetItem(str(new)) if difference > 0: # 涨 item.setTextColor(QColor('red')) elif difference < 0: # 跌 item.setTextColor(QColor('green')) else: continue else: # None item = QTableWidgetItem(str(tick[col])) elif col == "inc_day_interest": data = tick['open_interest'] - tick['pre_open_interest'] item = QTableWidgetItem(str(data)) # item.setTextColor() # elif col == "inc_now_interest": # 现增仓 # item = '' elif col == "limit": # 涨跌 data = tick['last_price'] - tick['pre_close'] item = QTableWidgetItem(str(data)) elif col == "limit1": # 涨幅 data = (tick['last_price'] - tick['pre_close'] / tick['pre_close']) * 0.01 item = QTableWidgetItem(str(data)) else: item = QTableWidgetItem(str(tick.get(col, "---"))) except (ValueError, ZeroDivisionError) as e: item = QTableWidgetItem(str(tick.get(col, "---"))) if item.text().isdigit(): item.setText("%0.2f" % float(item.text())) if col in yellow: item.setTextColor(QColor(199, 199, 9)) self.tableWidget.setItem(row, i, item)
def inner(): name = None if tw.currentItem(): row = tw.currentRow() name = tw.item(row, 0).text() customers = main_window.db.get_customers() tw.setColumnCount(len(customers_header_items)) tw.setRowCount(len(customers)) tw.setHorizontalHeaderLabels(customers_header_items) for row in range(0, len(customers)): for column in range(0, len(customers_header_items)): text = customers[row][column] if column == customers_header_items.index('Nicknames'): text = parse_nicknames_str(text) text = str(text) if text else None item = QTableWidgetItem(text) tw.setItem(row, column, item) tw.sortItems(0) if name: for row in range(0, tw.rowCount()): item = tw.item(row, 0) if item.text() == name: tw.setCurrentItem(item)
def insert_new_subtitle(self): index = self.editPanel.no.value() - 1 # Starts at 1 numRows = self.subTablePanel.rowCount() tcIn = QTableWidgetItem(self.editPanel.tcIn.text()) tcOut = QTableWidgetItem(self.editPanel.tcOut.text()) sub = QTableWidgetItem(self.editPanel.subtitle.toPlainText()) if not self.re_editing: # print(index, numRows) if index >= numRows: # print("Everything is ok, can Insert") self.subTablePanel.setRowCount(index + 1) # Insert Row Data self.subTablePanel.setItem(numRows, 0, tcIn) self.subTablePanel.setItem(numRows, 1, tcOut) self.subTablePanel.setItem(numRows, 2, sub) self.editPanel.no.setValue(index + 2) # Increment Number self.editPanel.tcIn.setText(tcOut.text()) else: self.subTablePanel.setItem(index, 0, tcIn) self.subTablePanel.setItem(index, 1, tcOut) self.subTablePanel.setItem(index, 2, sub) self.editPanel.subtitle.clear() self.editPanel.no.setValue(numRows + 1) self.editPanel.tcIn.setText( self.subTablePanel.item(numRows - 1, 1).text()) self.re_editing = False self.editPanel.subtitle.clear() self.editPanel.tcOut.setText("00000000") self.editPanel.tcDur.setText("00000000") if not self.importing: self.setup_temp_subtitles()
def _on_diagnose_change(self, item: QTableWidgetItem): column = item.column() row = item.row() poi_id = self.multiPOIList.item(row, self.POIID_COLUMN).text() content = item.text() original_content = self.multi_poi.am_obj.get_content_by_id_column(poi_id, column) _l.debug('updaing %s, content: %s, original: %s', poi_id, content, original_content) if not self._is_identical(content, original_content): updated_poi = self.multi_poi.update_poi(poi_id, column, content) self._diagnose_handler.submit_updated_poi(poi_id, updated_poi)
def change_rate(self, item: QTableWidgetItem): """ Обновляет расход материала в услуге и расчитывает себестоимость. :param item: QTableWidgetItem """ if item.column() == 2 and float(item.text()) != 0: rate = float(item.text()) storage_item = self.service_storage[ self.service_ui.left_table.item(item.row(), 0).text()] if storage_item.rate == rate: return total = self.service_ui.left_table.item( self.service_ui.left_table.rowCount() - 1, 3) amount = float(total.text()) amount -= storage_item.rate_price storage_item.rate = rate cost = self.service_ui.left_table.item(item.row(), 3) cost.setText(str(storage_item.rate_price)) amount += storage_item.rate_price total.setText(str(amount))
def show_query_resluts(self, header: list, rows: list) -> None: self.wrapped_table.setColumnCount(len(header)) self.wrapped_table.setRowCount(len(rows)) for i, c_name in enumerate(header): self.wrapped_table.setHorizontalHeaderItem( i, QTableWidgetItem(c_name)) for i, row in enumerate(rows): for j, value in enumerate(row): item = QTableWidgetItem() item.setData(0, value) if item.text() == "": item.setText(str( value)) # use str representation for unsupported types self.wrapped_table.setItem(i, j, item)
def _on_segment_item_changed(self, item: QTableWidgetItem): """when user enters new value to segments table""" if self.segments_edit_semaphore.locked( ): # item is being updated from code rather than by user return val = float(item.text()) logger().info(f'Segment value changed: {val}') if item.column() == 0: self.gen_curve.segment_set_range(segment=item.row(), from_value=val) elif item.column() == 1: self.gen_curve.segment_set_range(segment=item.row(), to_value=val) elif item.column() == 2: self.gen_curve.segment_update_data(segment=item.row(), data={'PHIN': val}) self.populate_segments()
def build_analysis(self) -> None: """""" columns = ['Data analisys', 'PID', 'CPU%', 'Memory', 'Status', ] start_index = self.parent_frame.tableWidget_anlaysis.rowCount() - 1 if self.parent_frame.tableWidget_anlaysis.rowCount() == 0: self.parent_frame.tableWidget_anlaysis.clear() self.parent_frame.tableWidget_anlaysis.setRowCount(0) self.parent_frame.tableWidget_anlaysis.setColumnCount(len(columns)) self.parent_frame.tableWidget_anlaysis.setHorizontalHeaderLabels( columns) already_items = [] to_remove = [] to_add = [self.parent_frame.listWidget_projects_analysis.item(i).text( ) for i in range(self.parent_frame.listWidget_projects_analysis.count())] else: # start_index = 0 already_items = [self.parent_frame.tableWidget_anlaysis.item( i, 0).text() for i in range(self.parent_frame.tableWidget_anlaysis.rowCount())] new_ones = [self.parent_frame.listWidget_projects_analysis.item( i).text() for i in range(self.parent_frame.listWidget_projects_analysis.count())] to_remove = set(already_items) - set(new_ones) to_add = set(new_ones) - set(already_items) for i, script_name in enumerate(to_add): if script_name.startswith('_'): continue if script_name in already_items: continue # if item.text().startswith('Tutorial |'): # continue self.parent_frame.tableWidget_anlaysis.insertRow(start_index + i) for j in range(len(columns)): if j == 0: item = QTableWidgetItem(script_name) item.setCheckState(Qt.Unchecked) item.is_running = False else: item = QTableWidgetItem() if 0 < j < 4: item.setTextAlignment(Qt.AlignCenter) item.setFlags(item.flags() & ~Qt.ItemIsEditable & ~Qt.ItemIsSelectable) self.parent_frame.tableWidget_anlaysis.setItem( start_index + i, j, item) self.parent_frame.tableWidget_anlaysis.cellWidget( start_index + i, j) for script_name in to_remove: for i in range(self.parent_frame.tableWidget_anlaysis.rowCount()): item = self.parent_frame.tableWidget_anlaysis.item(i, 0) if item.text() == script_name: if not item.checkState() == Qt.Checked: self.parent_frame.tableWidget_anlaysis.removeRow(i) else: item.to_remove = True break self.parent_frame.tableWidget_anlaysis.sortByColumn(0)