Ejemplo n.º 1
0
    def __init__(self, rows, cols, parent):
        super(myTable, self).__init__(rows, cols, parent)
        self.num_col = cols
        self.num_row = rows
        self.setupHeader(cols)  # ヘッダーのアルファベット設定
        self.setItemPrototype(self.item(rows - 1, cols - 1))  # テーブルアイテムの初期化
        self.setItemDelegate(SpreadSheetDelegate(self))  # デリゲート
        self.initContents()
        self.setupContents()

        self.clipTable = QTableWidget(rows, cols, None)  # コピー,カットのための仮装テーブル
        self.clipRanges = QTableWidgetSelectionRange()  # コピー,カットしたセルの領域情報
        self.verticalHeader().setDefaultSectionSize(60)
        self.horizontalHeader().setDefaultSectionSize(120)
Ejemplo n.º 2
0
    def on_select_open_orders_table(self, row, column):
        column_count = self.table_order_history.columnCount() - 1
        selection_range = QTableWidgetSelectionRange(row, 0, row, column_count)
        self.table_open_orders.setRangeSelected(selection_range, True)

        item_name_column = 0
        item_name_item = self.table_open_orders.item(row, item_name_column)
        item_name = item_name_item.text()
        index = self.cbb_item_name.findText(item_name)
        self.cbb_item_name.setCurrentIndex(index)

        open_amount_column = 4
        open_amount_item = self.table_open_orders.item(row, open_amount_column)
        open_amount = self.process_type(open_amount_item.text())
        self.sb_amount.setValue(open_amount)

        order_number_column = 5
        order_number_item = self.table_open_orders.item(
            row, order_number_column)
        order_number = order_number_item.text()
        self.le_order_number.setText(order_number)

        order_price_column = 7
        order_price_item = self.table_open_orders.item(row, order_price_column)
        order_price = self.process_type(order_price_item.text())
        self.sb_price.setValue(order_price)

        order_position_column = 9
        order_position_item = self.table_open_orders.item(
            row, order_position_column)
        order_position = order_position_item.text()
        if order_position == PURCHASE[-2:]:
            self.cbb_order_position.setCurrentText('CANCEL BUY')
        elif order_position == SELL[-2:]:
            self.cbb_order_position.setCurrentText('CANCEL SELL')
 def actTbUnselectionClicked(self):
     self.twReportList.setFocus()
     selectedCount = self.twReportList.rowCount()
     qtwsr = QTableWidgetSelectionRange(0, 0, selectedCount - 1,
                                        self.twReportList.columnCount() - 1)
     self.twReportList.setRangeSelected(qtwsr, False)
     self.mainWin.statusMsg('您选中了{0}行'.format(0))
Ejemplo n.º 4
0
    def on_select_portfolio_table(self, row, column):
        column_count = self.table_portfolio.columnCount() - 1
        selection_range = QTableWidgetSelectionRange(row, 0, row, column_count)
        self.table_portfolio.setRangeSelected(selection_range, True)

        item_name_column = 0
        item_name_item = self.table_portfolio.item(row, item_name_column)
        item_name = item_name_item.text()
        if item_name[:2] == 'F ':
            item_name = item_name[:8]
        index = self.cbb_item_name.findText(item_name)
        self.cbb_item_name.setCurrentIndex(index)

        current_price_column = 1
        current_price_item = self.table_portfolio.item(row,
                                                       current_price_column)
        current_price = self.process_type(current_price_item.text())
        self.sb_price.setValue(current_price)

        holding_amount_column = 3
        holding_amount_item = self.table_portfolio.item(
            row, holding_amount_column)
        holding_amount = self.process_type(holding_amount_item.text())
        self.sb_amount.setValue(abs(holding_amount))

        self.cbb_order_type.setCurrentText('MARKET')
        if holding_amount > 0:
            self.cbb_order_position.setCurrentText('SELL')
        else:
            self.cbb_order_position.setCurrentText('BUY')
Ejemplo n.º 5
0
 def add_folder(self, folder_name, uuid, is_synced, is_confined, selected=False):
     if is_confined and not self.config.gui_show_confined:
         return
     row_idx = self.rowCount()
     self.insertRow(row_idx)
     item = FolderTableItem(is_synced, is_confined)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.ICON, item)
     item = CustomTableItem(folder_name)
     item.setData(NAME_DATA_INDEX, folder_name)
     item.setToolTip("\n".join(folder_name[i : i + 64] for i in range(0, len(folder_name), 64)))
     item.setData(TYPE_DATA_INDEX, FileType.Folder)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.NAME, item)
     item = CustomTableItem()
     item.setData(NAME_DATA_INDEX, pendulum.datetime(1970, 1, 1))
     item.setData(TYPE_DATA_INDEX, FileType.Folder)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.CREATED, item)
     item = CustomTableItem()
     item.setData(NAME_DATA_INDEX, pendulum.datetime(1970, 1, 1))
     item.setData(TYPE_DATA_INDEX, FileType.Folder)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.UPDATED, item)
     item = CustomTableItem()
     item.setData(NAME_DATA_INDEX, -1)
     item.setData(TYPE_DATA_INDEX, FileType.Folder)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.SIZE, item)
     if selected:
         self.setRangeSelected(
             QTableWidgetSelectionRange(row_idx, 0, row_idx, len(Column) - 1), True
         )
Ejemplo n.º 6
0
    def highlight(self, cells: List[Tuple[int, int]]) -> None:
        if len(cells) == 0:
            return

        self.__widget.selectionModel().clearSelection()

        minRow: int = self.__widget.rowCount() + 1
        minColumn: int = self.__widget.columnCount() + 1
        maxRow: int = -1
        maxColumn: int = -1

        for cell in cells:
            if cell[0] < minRow:
                minRow = cell[0]
            if cell[0] > maxRow:
                maxRow = cell[0]

            if cell[1] < minColumn:
                minColumn = cell[1]
            if cell[1] > maxColumn:
                maxColumn = cell[1]

        selectionRange: QTableWidgetSelectionRange = QTableWidgetSelectionRange(
            minRow, minColumn, maxRow, maxColumn)
        self.__widget.setRangeSelected(selectionRange, True)
        self.__widget.repaint(0, 0, self.__widget.width(),
                              self.__widget.height())
Ejemplo n.º 7
0
    def on_select_algorithm_trading_table(self, row, column):
        column_count = self.table_algorithm_trading.columnCount() - 1
        selection_range = QTableWidgetSelectionRange(row, 0, row, column_count)
        self.table_algorithm_trading.setRangeSelected(selection_range, True)

        item_name_column = 0
        item_name_item = self.table_algorithm_trading.item(
            row, item_name_column)
        item_name = item_name_item.text()
        index = self.cbb_item_name.findText(item_name)
        self.cbb_item_name.setCurrentIndex(index)

        order_number_column = 3
        order_number_item = self.table_algorithm_trading.item(
            row, order_number_column)
        order_number = order_number_item.text()
        self.le_order_number.setText(order_number)

        order_price_column = 6
        order_price_item = self.table_algorithm_trading.item(
            row, order_price_column)
        order_price = self.process_type(order_price_item.text())
        if order_price:
            self.sb_price.setValue(order_price)

        open_amount_column = 10
        open_amount_item = self.table_algorithm_trading.item(
            row, open_amount_column)
        open_amount = self.process_type(open_amount_item.text())
        self.sb_amount.setValue(open_amount)
Ejemplo n.º 8
0
 def actTbSelectionClicked(self):
     self.twNewaimProductCategoryList.setFocus()
     selectedCount = self.twNewaimProductCategoryList.rowCount()
     qtwsr = QTableWidgetSelectionRange(
         0, 0, selectedCount - 1,
         self.twNewaimProductCategoryList.columnCount() - 1)
     self.twNewaimProductCategoryList.setRangeSelected(qtwsr, True)
     self.mainWin.statusMsg('您选中了{0}行'.format(selectedCount))
Ejemplo n.º 9
0
 def actTbSelectionClicked(self):
     self.twAmazonKeyword.setFocus()
     selectedCount = self.twAmazonKeyword.rowCount()
     qtwsr = QTableWidgetSelectionRange(
         0, 0, selectedCount - 1,
         self.twAmazonKeyword.columnCount() - 1)
     self.twAmazonKeyword.setRangeSelected(qtwsr, True)
     self.mainWin.statusMsg('您选中了{0}行'.format(selectedCount))
Ejemplo n.º 10
0
 def _selectAllFeatures(self):
     """
     Selects all features without modifying the 2d/3d switches
     """
     # top (1st row 2d/3d, 2nd row sigma value), left, bottom, right
     selection_range = QTableWidgetSelectionRange(2, 0,
                                                  self.rowCount() - 1,
                                                  self.columnCount() - 2)
     self.setRangeSelected(selection_range, True)
Ejemplo n.º 11
0
	def goToPosition(self):
		self.tableWidget.clearSelection()
		position = self.goTo.text()
		lenght = len(position)
		if lenght > 3:
			position_Row = position[:3]
			position_Column = position[3:]
			position_Row = int(position_Row, 16)
			position_Column = int(position_Column, 16)
			positionCell = self.tableWidget.item(position_Row, position_Column)
			self.tableWidget.scrollToItem(positionCell)
			self.tableWidget.setRangeSelected(QTableWidgetSelectionRange(positionCell.row(), positionCell.column(), positionCell.row(), positionCell.column()), True)
		elif lenght > 0:
			position_Row = position
			position_Row = int(position_Row, 16)
			position_Column = 0
			positionCell = self.tableWidget.item(position_Row, position_Column)
			self.tableWidget.scrollToItem(positionCell)
			self.tableWidget.setRangeSelected(QTableWidgetSelectionRange(positionCell.row(), positionCell.column(), positionCell.row(), positionCell.column()), True)
Ejemplo n.º 12
0
 def on_changed(self):
     print("on_changed")
     # Handles initial click and drag. Sets the entire row
     for r in self.tableWidget.selectedRanges():
         self.tableWidget.setRangeSelected(
             QTableWidgetSelectionRange(r.topRow(), 0, r.bottomRow(),
                                        self.tableWidget.columnCount() - 1),
             True)
         for row in range(r.topRow(), r.bottomRow() + 1):
             item = self.tableWidget.item(row, 0)
             if item and self.newState != None:
                 item.setCheckState(self.newState)
Ejemplo n.º 13
0
 def add_musics(self):
     self.files = QFileDialog.getOpenFileNames(self, "选择音乐文件",
                                               self.downloadDir,
                                               self.tr("*.mp3"))[0]
     if not self.files:
         return
     self.exec_add_operation(self.files)
     self.musics_added_signal.emit(True)
     for item in self.files:
         row = self.playlist.get_item_index(item)
         self.setRangeSelected(
             QTableWidgetSelectionRange(row, 0, row,
                                        self.columnCount() - 1), True)
Ejemplo n.º 14
0
    def on_select_balance_table(self, row, column):
        column_count = self.table_balance.columnCount() - 1
        selection_range = QTableWidgetSelectionRange(row, 0, row, column_count)
        self.table_balance.setRangeSelected(selection_range, True)

        item_name_column = 0
        item_name_item = self.table_balance.item(row, item_name_column)
        item_name = item_name_item.text()
        index = self.cbb_item_name.findText(item_name)
        self.cbb_item_name.setCurrentIndex(index)

        current_price_column = 1
        current_price_item = self.table_balance.item(row, current_price_column)
        current_price = self.process_type(current_price_item.text())
        self.sb_price.setValue(current_price)
Ejemplo n.º 15
0
 def actTbInvertSelectionClicked(self):
     self.twAmazonKeyword.setFocus()
     row_num = self.twAmazonKeyword.rowCount()
     column_num = self.twAmazonKeyword.columnCount() - 1
     selectedCount = 0
     if (row_num > 0):
         listRows = set(self.gettwAmazonKeywordSelectionChangedRowsNum())
         for i in range(row_num):
             qtwsr = QTableWidgetSelectionRange(i, 0, i, column_num)
             if (i in listRows):
                 self.twAmazonKeyword.setRangeSelected(qtwsr, False)
             else:
                 self.twAmazonKeyword.setRangeSelected(qtwsr, True)
                 selectedCount += 1
     self.mainWin.statusMsg('您选中了{0}行'.format(selectedCount))
Ejemplo n.º 16
0
 def add_file(
     self,
     file_name,
     entry_id,
     file_size,
     created_on,
     updated_on,
     is_synced,
     is_confined,
     selected=False,
 ):
     if is_confined and not self.config.gui_show_confined:
         return
     entry_id = entry_id.hex
     row_idx = self.rowCount()
     self.insertRow(row_idx)
     item = FileTableItem(is_synced, is_confined, file_name.str)
     item.setData(NAME_DATA_INDEX, 1)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(ENTRY_ID_DATA_INDEX, entry_id)
     self.setItem(row_idx, Column.ICON, item)
     item = CustomTableItem(file_name.str)
     item.setToolTip("\n".join(file_name.str[i:i + 64]
                               for i in range(0, len(file_name.str), 64)))
     item.setData(NAME_DATA_INDEX, file_name.str)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(ENTRY_ID_DATA_INDEX, entry_id)
     self.setItem(row_idx, Column.NAME, item)
     item = CustomTableItem(format_datetime(created_on))
     item.setData(NAME_DATA_INDEX, created_on)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(ENTRY_ID_DATA_INDEX, entry_id)
     self.setItem(row_idx, Column.CREATED, item)
     item = CustomTableItem(format_datetime(updated_on))
     item.setData(NAME_DATA_INDEX, updated_on)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(ENTRY_ID_DATA_INDEX, entry_id)
     self.setItem(row_idx, Column.UPDATED, item)
     item = CustomTableItem(get_filesize(file_size))
     item.setData(NAME_DATA_INDEX, file_size)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(ENTRY_ID_DATA_INDEX, entry_id)
     self.setItem(row_idx, Column.SIZE, item)
     if selected:
         self.setRangeSelected(
             QTableWidgetSelectionRange(row_idx, 0, row_idx,
                                        len(Column) - 1), True)
Ejemplo n.º 17
0
    def change_date(self, select_date):
        a = -1
        b = -1

        self.tableWidget.clearSelection()
        for row in range(self.tableWidget.rowCount()):
            date_item = self.tableWidget.item(row, 3)
            if select_date.toString(Qt.ISODate) == date_item.text():
                if a == -1:
                    a = row
                    b = row - 1
                b += 1

        if a != -1 and b != -1:
            self.tableWidget.setRangeSelected(
                QTableWidgetSelectionRange(a, 0, b, 3), True)
            self.tabWidget.setCurrentIndex(1)
    def table_selectionChanged(self):
        if self.__table_selection_being_updated is True:
            return

        rows_to_select = set()
        for next_item in self.__dashboardUi.tableWidget.selectedItems():
            rows_to_select.add(next_item.row())

        self.__table_selection_being_updated = True
        self.__dashboardUi.tableWidget.clearSelection()

        for i in rows_to_select:
            self.__dashboardUi.tableWidget.setRangeSelected(
                QTableWidgetSelectionRange(i, self.__ID_COL, i,
                                           self.__NAME_COL), True)

        self.__table_selection_being_updated = False
Ejemplo n.º 19
0
    def on_down(self):
        table: QTableWidget = self.colorTable

        selected = table.selectedIndexes()
        if selected:
            rows = [index.row() for index in selected]

            next_row = table.rowCount() - 1
            for row in sorted(rows, reverse=True):
                if row < next_row:
                    SettingsWindow._swap_items(table, row, 0, row + 1, 0)
                else:
                    next_row -= 1

            table.clearSelection()
            table.setRangeSelected(
                QTableWidgetSelectionRange(min(rows) + 1, 0,
                                           max(rows) + 1, 0), True)
Ejemplo n.º 20
0
    def on_up(self):
        table: QTableWidget = self.colorTable

        selected = table.selectedIndexes()
        if selected:
            rows = [index.row() for index in selected]

            prev_row = 0
            for row in sorted(rows):
                if row > prev_row:
                    SettingsWindow._swap_items(table, row, 0, row - 1, 0)
                else:
                    prev_row += 1

            table.clearSelection()
            table.setRangeSelected(
                QTableWidgetSelectionRange(min(rows) - 1, 0,
                                           max(rows) - 1, 0), True)
Ejemplo n.º 21
0
 def add_file(self,
              file_name,
              uuid,
              file_size,
              created_on,
              updated_on,
              is_synced,
              selected=False):
     row_idx = self.rowCount()
     self.insertRow(row_idx)
     item = FileTableItem(is_synced, file_name)
     item.setData(NAME_DATA_INDEX, 1)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.ICON, item)
     item = CustomTableItem(file_name)
     item.setToolTip("\n".join(file_name[i:i + 64]
                               for i in range(0, len(file_name), 64)))
     item.setData(NAME_DATA_INDEX, file_name)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.NAME, item)
     item = CustomTableItem(format_datetime(created_on))
     item.setData(NAME_DATA_INDEX, created_on)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.CREATED, item)
     item = CustomTableItem(format_datetime(updated_on))
     item.setData(NAME_DATA_INDEX, updated_on)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.UPDATED, item)
     item = CustomTableItem(get_filesize(file_size))
     item.setData(NAME_DATA_INDEX, file_size)
     item.setData(TYPE_DATA_INDEX, FileType.File)
     item.setData(UUID_DATA_INDEX, uuid)
     self.setItem(row_idx, Column.SIZE, item)
     if selected:
         self.setRangeSelected(
             QTableWidgetSelectionRange(row_idx, 0, row_idx,
                                        len(Column) - 1), True)
Ejemplo n.º 22
0
    def SaveBlock(self):
        # Обновить текущий блок
        print("Save ", hex(self.Address), " to ", self.FileName)
        a = array.array('B')  # массив из байтов (unsigned char)

        for row in range(0, 16):
            for col in range(0, 16):
                s = self.tableWidget.item(row, col).text()
                if s != "-":
                    # print(s)
                    try:
                        b1 = int(s, 16)
                        if (b1 < 0) or (b1 > 255):
                            b1 = 1 / 0
                    except:
                        # Вывести на консоль
                        print("ERROR!!", row, " ", col)
                        # позиционировать в таблице
                        self.tableWidget.clearSelection()
                        Range = QTableWidgetSelectionRange(row, col, row, col)
                        self.tableWidget.setRangeSelected(Range, True)
                        # Вывести на GUI
                        mb = QMessageBox()
                        mb.setIcon(QMessageBox.Information)
                        mb.setWindowTitle('Error')
                        mb.setText('Не байт в строке ' + str(row) +
                                   ' столбце ' + str(col))
                        mb.setStandardButtons(QMessageBox.Ok)
                        mb.exec()
                        return

                    a.append(b1)

        f = open(self.FileName, 'r+b')
        f.seek(self.Address)
        f.write(a)
        f.close()
        self.ShowBlock()
        return
Ejemplo n.º 23
0
 def select_none_rows(self):
     self.setRangeSelected(
         QTableWidgetSelectionRange(0, 0,
                                    self.rowCount() - 1,
                                    self.columnCount() - 1), False)
Ejemplo n.º 24
0
 def select_all_rows(self):
     self.setRangeSelected(
         QTableWidgetSelectionRange(0, 0,
                                    self.rowCount() - 1,
                                    self.columnCount() - 1), True)
Ejemplo n.º 25
0
 def select_a_row(self, row, flag=True):
     self.setRangeSelected(
         QTableWidgetSelectionRange(row, 0, row,
                                    self.columnCount() - 1), flag)
Ejemplo n.º 26
0
 def deletealarm(self,_):
     self.aw.qmc.alarmtablecolumnwidths = [self.alarmtable.columnWidth(c) for c in range(self.alarmtable.columnCount())]
     self.alarmtable.setSortingEnabled(False)
     nalarms = self.alarmtable.rowCount()
     if nalarms:
         # check for selection
         selected = self.alarmtable.selectedRanges()
         if selected and len(selected) > 0:
             selected_row = selected[0].topRow()
             selected_row = int(self.alarmtable.item(selected_row,0).text()) -1 # we derref the rows number that might be different per sorting order
             self.alarmtable.removeRow(selected_row)
             self.aw.qmc.alarmflag = self.aw.qmc.alarmflag[0:selected_row] + self.aw.qmc.alarmflag[selected_row + 1:]
             self.aw.qmc.alarmguard = self.aw.qmc.alarmguard[0:selected_row] + self.aw.qmc.alarmguard[selected_row + 1:]
             self.aw.qmc.alarmnegguard = self.aw.qmc.alarmnegguard[0:selected_row] + self.aw.qmc.alarmnegguard[selected_row + 1:]
             self.aw.qmc.alarmtime = self.aw.qmc.alarmtime[0:selected_row] + self.aw.qmc.alarmtime[selected_row + 1:]
             self.aw.qmc.alarmoffset = self.aw.qmc.alarmoffset[0:selected_row] + self.aw.qmc.alarmoffset[selected_row + 1:]
             self.aw.qmc.alarmcond = self.aw.qmc.alarmcond[0:selected_row] + self.aw.qmc.alarmcond[selected_row + 1:]
             self.aw.qmc.alarmstate = self.aw.qmc.alarmstate[0:selected_row] + self.aw.qmc.alarmstate[selected_row + 1:]
             self.aw.qmc.alarmsource = self.aw.qmc.alarmsource[0:selected_row] + self.aw.qmc.alarmsource[selected_row + 1:]
             self.aw.qmc.alarmtemperature = self.aw.qmc.alarmtemperature[0:selected_row] + self.aw.qmc.alarmtemperature[selected_row + 1:]
             self.aw.qmc.alarmaction = self.aw.qmc.alarmaction[0:selected_row] + self.aw.qmc.alarmaction[selected_row + 1:]
             self.aw.qmc.alarmbeep = self.aw.qmc.alarmbeep[0:selected_row] + self.aw.qmc.alarmbeep[selected_row + 1:]
             self.aw.qmc.alarmstrings = self.aw.qmc.alarmstrings[0:selected_row] + self.aw.qmc.alarmstrings[selected_row + 1:]
             self.alarmtable.setRowCount(nalarms - 1)
             self.deselectAll()
             # select row number that was just deleted
             self.alarmtable.setRangeSelected(QTableWidgetSelectionRange(selected_row,0,selected_row,self.alarmtable.columnCount()-1),True)
             self.alarmtable.sortItems(0)
             self.alarmtable.sortItems(0, Qt.AscendingOrder) # we first have to sort the table according to the row numbers
             # renumber elements
             self.renumberRows()
             # we correct the IfAlarm and ButNot references to items after the deleted one
             for i in range(self.alarmtable.rowCount()):
                 guard = self.alarmtable.cellWidget(i,2)
                 try:
                     guard_value = int(str(guard.text())) - 1
                 except Exception:
                     guard_value = -1
                 if guard_value >= selected_row:
                     guard.setText(str(guard_value))
                 nguard = self.alarmtable.cellWidget(i,3)
                 try:
                     nguard_value = int(str(nguard.text())) - 1
                 except Exception:
                     nguard_value = -1
                 if nguard_value >= selected_row:
                     nguard.setText(str(nguard_value))
         else:
             self.alarmtable.removeRow(self.alarmtable.rowCount() - 1)
             # nothing selected, we pop the last element
             self.aw.qmc.alarmflag.pop()
             self.aw.qmc.alarmguard.pop()
             self.aw.qmc.alarmnegguard.pop()
             self.aw.qmc.alarmtime.pop()
             self.aw.qmc.alarmoffset.pop()
             self.aw.qmc.alarmcond.pop()
             self.aw.qmc.alarmstate.pop()
             self.aw.qmc.alarmsource.pop()
             self.aw.qmc.alarmtemperature.pop()
             self.aw.qmc.alarmaction.pop()
             self.aw.qmc.alarmbeep.pop()
             self.aw.qmc.alarmstrings.pop()
             self.alarmtable.setRowCount(nalarms - 1)
             self.deselectAll()
             self.alarmtable.sortItems(0)
         self.markNotEnabledAlarmRows()
     self.alarmtable.setSortingEnabled(True)
Ejemplo n.º 27
0
    def insertalarm(self,_):
        self.alarmtable.setSortingEnabled(False)
        nalarms = self.alarmtable.rowCount()
        if nalarms:
            alarm_flag = 1
            alarm_guard = -1
            alarm_negguard = -1
            alarm_time = -1
            alarm_offset = 0
            alarm_cond = 1
            alarm_state = 0
            alarm_source = 1
            alarm_temperature = 500.
            alarm_action = 0
            alarm_beep = 0
            alarm_string = QApplication.translate("Label","Enter description",None)
            # check for selection
            selected = self.alarmtable.selectedRanges()
            if selected and len(selected) > 0:
                self.savealarms() # we first "save" the alarmtable to be able to pick up the values of the selected row
                selected_row = selected[0].topRow()
                selected_row = int(self.alarmtable.item(selected_row,0).text()) -1 # we derref the rows number that might be different per sorting order
                try:
                    alarm_flag = self.aw.qmc.alarmflag[selected_row]
                    alarm_guard = self.aw.qmc.alarmguard[selected_row]
                    alarm_negguard = self.aw.qmc.alarmnegguard[selected_row]
                    alarm_time = self.aw.qmc.alarmtime[selected_row]
                    alarm_offset = self.aw.qmc.alarmoffset[selected_row]
                    alarm_cond = self.aw.qmc.alarmcond[selected_row]
                    alarm_state = self.aw.qmc.alarmstate[selected_row]
                    alarm_source = self.aw.qmc.alarmsource[selected_row]
                    alarm_temperature = self.aw.qmc.alarmtemperature[selected_row]
                    alarm_action = self.aw.qmc.alarmaction[selected_row]
                    alarm_beep = self.aw.qmc.alarmbeep[selected_row]
                    alarm_string= self.aw.qmc.alarmstrings[selected_row]
                except:
                    pass  
                self.aw.qmc.alarmflag.insert(selected_row,alarm_flag)
                self.aw.qmc.alarmguard.insert(selected_row,alarm_guard)
                self.aw.qmc.alarmnegguard.insert(selected_row,alarm_negguard)
                self.aw.qmc.alarmtime.insert(selected_row,alarm_time)
                self.aw.qmc.alarmoffset.insert(selected_row,alarm_offset)
                self.aw.qmc.alarmcond.insert(selected_row,alarm_cond)
                self.aw.qmc.alarmstate.insert(selected_row,alarm_state)
                self.aw.qmc.alarmsource.insert(selected_row,alarm_source)
                self.aw.qmc.alarmtemperature.insert(selected_row,alarm_temperature)
                self.aw.qmc.alarmaction.insert(selected_row,alarm_action)
                self.aw.qmc.alarmbeep.insert(selected_row,alarm_beep)
                self.aw.qmc.alarmstrings.insert(selected_row,alarm_string)
                self.alarmtable.insertRow(selected_row)
                self.setalarmtablerow(selected_row)
#                self.alarmtable.resizeColumnsToContents()
#                #  improve width of Qlineedit columns
#                self.alarmtable.setColumnWidth(2,50)
#                self.alarmtable.setColumnWidth(3,50)
#                self.alarmtable.setColumnWidth(5,50)
#                self.alarmtable.setColumnWidth(6,80)
#                self.alarmtable.setColumnWidth(8,40)
                header = self.alarmtable.horizontalHeader()
                header.setStretchLastSection(False)
                self.deselectAll()
                # select newly inserted item
                self.alarmtable.setRangeSelected(QTableWidgetSelectionRange(selected_row,0,selected_row,self.alarmtable.columnCount()-1),True)
                header.setStretchLastSection(True)
                self.markNotEnabledAlarmRows()
                self.alarmtable.sortItems(0, Qt.AscendingOrder) # we first have to sort the table according to the row numbers
                # we no re-number rows
                self.renumberRows()
                # we correct the IfAlarm and ButNot references to items after the inserted one
                for i in range(self.alarmtable.rowCount()):
                    guard = self.alarmtable.cellWidget(i,2)
                    try:
                        guard_value = int(str(guard.text())) - 1
                    except Exception:
                        guard_value = -1
                    if guard_value >= selected_row:
                        guard.setText(str(guard_value+2))
                    nguard = self.alarmtable.cellWidget(i,3)
                    try:
                        nguard_value = int(str(nguard.text())) - 1
                    except Exception:
                        nguard_value = -1
                    if nguard_value >= selected_row:
                        nguard.setText(str(nguard_value+2))
        self.alarmtable.setSortingEnabled(True)
Ejemplo n.º 28
0
 def addalarm(self,_):
     alarm_flag = 1
     alarm_guard = -1
     alarm_negguard = -1
     alarm_time = -1
     alarm_offset = 0
     alarm_cond = 1
     alarm_state = -1
     alarm_source = 1
     alarm_temperature = 500.
     alarm_action = 0
     alarm_beep = 0
     alarm_string = QApplication.translate("Label","Enter description",None)
     selected = self.alarmtable.selectedRanges()
     if len(selected) > 0:
         self.savealarms() # we first "save" the alarmtable to be able to pick up the values of the selected row
         selected_idx = selected[0].topRow()
         selected_idx = int(self.alarmtable.item(selected_idx,0).text()) -1 # we derref the rows number that might be different per sorting order
         try:
             alarm_flag = self.aw.qmc.alarmflag[selected_idx]
             alarm_guard = self.aw.qmc.alarmguard[selected_idx]
             alarm_negguard = self.aw.qmc.alarmnegguard[selected_idx]
             alarm_time = self.aw.qmc.alarmtime[selected_idx]
             alarm_offset = self.aw.qmc.alarmoffset[selected_idx]
             alarm_cond = self.aw.qmc.alarmcond[selected_idx]
             alarm_state = self.aw.qmc.alarmstate[selected_idx]
             alarm_source = self.aw.qmc.alarmsource[selected_idx]
             alarm_temperature = self.aw.qmc.alarmtemperature[selected_idx]
             alarm_action = self.aw.qmc.alarmaction[selected_idx]
             alarm_beep = self.aw.qmc.alarmbeep[selected_idx]
             alarm_string= self.aw.qmc.alarmstrings[selected_idx]
         except:
             pass
     self.aw.qmc.alarmflag.append(alarm_flag)
     self.aw.qmc.alarmguard.append(alarm_guard)
     self.aw.qmc.alarmnegguard.append(alarm_negguard)
     self.aw.qmc.alarmtime.append(alarm_time)
     self.aw.qmc.alarmoffset.append(alarm_offset)
     self.aw.qmc.alarmcond.append(alarm_cond)
     self.aw.qmc.alarmstate.append(alarm_state)
     self.aw.qmc.alarmsource.append(alarm_source)
     self.aw.qmc.alarmtemperature.append(alarm_temperature)
     self.aw.qmc.alarmaction.append(alarm_action)
     self.aw.qmc.alarmbeep.append(alarm_beep)
     self.aw.qmc.alarmstrings.append(alarm_string)
     self.alarmtable.setSortingEnabled(False)
     nalarms = self.alarmtable.rowCount()
     self.alarmtable.setRowCount(nalarms + 1)
     self.setalarmtablerow(nalarms)
     
     header = self.alarmtable.horizontalHeader()
     header.setStretchLastSection(True)
     
     if len(self.aw.qmc.alarmflag) == 1: # only for the first entry we apply some default column width
         # improve width of Qlineedit columns
         self.alarmtable.resizeColumnsToContents()
         self.alarmtable.setColumnWidth(1,50)
         self.alarmtable.setColumnWidth(2,50)
         self.alarmtable.setColumnWidth(3,50)
         self.alarmtable.setColumnWidth(4,90)
         self.alarmtable.setColumnWidth(5,50)
         self.alarmtable.setColumnWidth(6,70)
         self.alarmtable.setColumnWidth(7,90)
         self.alarmtable.setColumnWidth(8,50)
         self.alarmtable.setColumnWidth(9,90)
         # remember the columnwidth
         for i in range(len(self.aw.qmc.alarmtablecolumnwidths)):
             try:
                 self.alarmtable.setColumnWidth(i,self.aw.qmc.alarmtablecolumnwidths[i])
             except:
                 pass
         self.alarmtable.setSortingEnabled(True)
     else:
         self.deselectAll()
         # select newly added row i.e. the last one
         self.alarmtable.setRangeSelected(QTableWidgetSelectionRange(nalarms,0,nalarms,self.alarmtable.columnCount()-1),True)
         header.setStretchLastSection(True)
         self.markNotEnabledAlarmRows()
         self.alarmtable.setSortingEnabled(True)
Ejemplo n.º 29
0
 def relics_cancelall(self):
     self.ui.curr_relics_list.setRangeSelected(
         QTableWidgetSelectionRange(0, 0, len_relics - 1, 3), False)
Ejemplo n.º 30
0
 def deselect(self):
     self.tableWidget.setRangeSelected(
         QTableWidgetSelectionRange(0, 0, self.row - 1, self.col - 1),
         False)