Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
        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))
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
    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)