def create_cell(self, data: str): """Create data cell on UI.""" cell = QTableWidgetItem(data) cell.setFont(QFont('Free Mono', 11)) cell.setTextAlignment(Qt.AlignVCenter | Qt.AlignHCenter) return cell
def _makewidget(parent, val, center=False): """ Small helper function that builds a TableWidgetItem and sets up the font the way we want""" out = QTableWidgetItem(str(val)) out.setFlags(Qt.ItemIsEnabled) out.setFont(getMonospaceFont(parent)) if center: out.setTextAlignment(Qt.AlignCenter) return out
def render_new_table_header_item(self, text): """create new table header item with our style @param text: header text to display """ item = QTableWidgetItem(text) item.setForeground(self._config.getColor("graph.true")) font = QFont() font.setBold(True) item.setFont(font) return item
def _table_item(text='', center=True): item = QTableWidgetItem(text) font = QFont() if center: # 행번호 item.setTextAlignment(Qt.AlignCenter) item.setFlags(Qt.NoItemFlags) item.setFont(font) font.setPointSize(7) else: item.setFlags(Qt.NoItemFlags) item.setFont(font) font.setPointSize(9) return item
def fillTable(self, size): print("fill") self.table.setMaximumSize(size*50 + 25, size*50 + 45) self.tableResults.setMaximumSize(225, size * 50 + 45) newFont = QFont("Arial", 12) for i in range(size): for j in range(size): if i == j: #self.table.setItem(i, j, QTableWidgetItem(QIcon("sticker.svg"), "")) item = QTableWidgetItem("0") item.setTextAlignment(Qt.AlignCenter) item.setFont(newFont) self.table.setItem(i, j, item) else: item = QTableWidgetItem(str(random.randrange(1))) item.setTextAlignment(Qt.AlignCenter) item.setFont(newFont) self.table.setItem(i, j, item) self.table.setHorizontalHeaderLabels([str(i + 1) + "\n " for i in range(size)]) print(self.table.item(0, 1).text()) for i in range(size): for j in range(2): item = QTableWidgetItem("__") item.setTextAlignment(Qt.AlignCenter) item.setFont(newFont) self.tableResults.setItem(i, j, item)
def display_active_table_on_data_display(self): # class props needed data_to_display = self.data_to_display_on_tab1.copy() table_name = self.table_on_target self.ui.label_table_on_display.setText(table_name) # headers fields = self.headers_for_tab1 self.ui.tableWidget_table_display.setColumnCount(len(fields)) tableHeadersWidgets_list = list((QTableWidgetItem() for n in fields)) for index, field in enumerate(fields): tableHeadersWidgets_list[index].setText(field) self.ui.tableWidget_table_display.setHorizontalHeaderItem( index, tableHeadersWidgets_list[index]) # table build process self.ui.tableWidget_table_display.setRowCount(0) for i_row, row in enumerate(data_to_display): self.ui.tableWidget_table_display.insertRow(i_row) for i_col, item_data in enumerate(row): item__ = QTableWidgetItem(str(item_data)) if i_row % 2 == 0: item__.setBackgroundColor(QColor(220, 230, 255)) try: negative_value = item_data < 0 if negative_value: item__.setBackgroundColor(QColor(120, 0, 0)) item__.setTextColor(QColor(255, 255, 255)) item__.setFont(QFont(weight=5)) except: pass finally: item__.setText( get_format_of_field( table_name, self.ui.tableWidget_table_display.horizontalHeaderItem( i_col).text())(item_data)) self.ui.tableWidget_table_display.setItem(i_row, i_col, item__) # print('debug: table {} displayed...'.format(table_name)) return
def load_sum_table(self): self.check_new_categories_for_spent_limit() for spent_limit in self.__spent_in_month.spent_limit_goal: initial_row_count = self.ui.tableWidget_sum.rowCount() self.ui.tableWidget_sum.insertRow(initial_row_count) #create and insert QTableWidgetItems twi_category = QTableWidgetItem() twi_category.setData(Qt.DisplayRole, spent_limit.category.name) twi_category.setFlags(Qt.ItemIsEnabled) # Disable for edition self.ui.tableWidget_sum.setItem(initial_row_count, 0, twi_category) twi_sum = QTableWidgetItem() # twi_sum.setData(Qt.DisplayRole, spent_limit.category.name) twi_sum.setFlags(Qt.ItemIsEnabled) # Disable for edition self.ui.tableWidget_sum.setItem(initial_row_count, 1, twi_sum) twi_goal = QTableWidgetItem() bold_font = QFont() bold_font.setBold(True) twi_goal.setFont(bold_font) twi_goal.setData(Qt.DisplayRole, spent_limit.amount) self.ui.tableWidget_sum.setItem(initial_row_count, 2, twi_goal) self.update_spent_sum() self.update_all_colors_sum_table()
class MainTable(QTableWidget): def __init__(self): super().__init__() self.initTable() def initTable(self): #Формирование базовой таблицы self.header = [ 'Составляющие затрат', 'Номер расценки', 'Единица измерения', 'Базовая величина затрат, тыс.руб./ед.изм.', 'Количество ед.', 'Коэффициент приведения затрат к уровню цен субъекта', 'Базовые затраты в уровнях цен субъекта РФ, тыс.руб.', 'Текущие затраты в уровнях цен субъекта РФ, тыс.руб.', 'Del' ] self.setColumnCount(9) self.setRowCount(1) for i in range(0, len(self.header)): self.setHorizontalHeaderItem(i, QTableWidgetItem(self.header[i])) stylesheet = "::section{Background-color:rgb(176,224,230);border-radius:2px;}" self.horizontalHeader().setStyleSheet(stylesheet) self.resizeColumnsToContents() #Формирование сигналов self.cellClicked.connect(self.deleteClicked) #Добавление строк по клику def update_table(self, items): self.make_closebutton() text = self.make_numbertext(items) self.row = self.rowCount() - 1 self.setItem(self.row, 3, QTableWidgetItem(items[0])) self.setItem(self.row, 4, QTableWidgetItem(items[3])) self.setItem(self.row, 5, QTableWidgetItem( items[4])) #Добавить критерии выбора региональных коэффициентов self.setItem(self.row, 6, QTableWidgetItem(self.calculate(items)[0])) self.setItem(self.row, 7, QTableWidgetItem(self.calculate(items)[1])) self.setItem(self.row, 1, QTableWidgetItem(text)) self.setItem(self.row, 8, self.closebut) self.insertRow(self.row + 1) #Пересчет при изменении значений def recalculation(self, data): for i in range(len(data[0])): cost = float(data[0][i]) count = float(data[1][i]) koef = float(data[2][i]) calc = str(round(cost * count * koef, 1)) self.setItem(i, 6, QTableWidgetItem(calc.replace('.', ','))) self.setItem( i, 7, QTableWidgetItem( str(round(float(calc) * 1.2, 1)).replace('.', ','))) #Удаление строки def deleteClicked(self, row, col): if col == 8: self.removeRow(row) self.row += 1 #Текст для категории def make_numbertext(self, items): if len(items[2]) > 5: return items[2][:5] + '-' + items[1] else: return items[2] #Расчет стоимости def calculate(self, items): cost = float(items[0].replace(',', '.')) count = float(items[3].replace(',', '.')) k = float(items[4].replace(',', '.')) current_cost = str(round(cost * count * k, 11)) future_cost = str(round(float(current_cost) * 1.2, 1)) return [current_cost.replace('.', ','), future_cost.replace('.', ',')] #Рисует крестик для удаления строки def make_closebutton(self): self.closebut = QTableWidgetItem('X') self.closebut.setBackgroundColor(QColor(240, 240, 240)) self.closebut.setFont(QFont('Helvetica [Cronyx]', 18, QFont.ExtraBold)) self.closebut.setTextColor(QColor(255, 11, 21)) self.closebut.setTextAlignment(4)
def __init__(self): super(FTPClient, self).__init__() self.setFixedSize(600, 608) self.load_ui() self.tableWidget = self.findChild(QTableWidget, "tableWidget") self.progressBar = self.findChild(QProgressBar, "progressBar") self.lineEditUsername = self.findChild(QLineEdit, "lineEditUsername") self.lineEditPassword = self.findChild(QLineEdit, "lineEditPassword") self.lineEditPort = self.findChild(QLineEdit, "lineEditPort") self.lineEditIP1 = self.findChild(QLineEdit, "lineEditIP1") self.lineEditIP2 = self.findChild(QLineEdit, "lineEditIP2") self.lineEditIP3 = self.findChild(QLineEdit, "lineEditIP3") self.lineEditIP0 = self.findChild(QLineEdit, "lineEditIP0") self.textEditMessage = self.findChild(QTextEdit, "textEditMessage") self.labelStatus = self.findChild(QLabel, "labelStatus") self.pushButtonMKD = self.findChild(QPushButton, "pushButtonMKD") self.pushButtonRMD = self.findChild(QPushButton, "pushButtonRMD") self.pushButtonRename = self.findChild(QPushButton, "pushButtonRename") self.pushButtonSTOR = self.findChild(QPushButton, "pushButtonSTOR") self.pushButtonLogin = self.findChild(QPushButton, "pushButtonLogin") self.pushButtonBack = self.findChild(QPushButton, "pushButtonBack") status = False self.pushButtonMKD.setEnabled(status) self.pushButtonRMD.setEnabled(status) self.pushButtonRename.setEnabled(status) self.pushButtonSTOR.setEnabled(status) self.pushButtonBack.setEnabled(status) self.lineEditUsername.setText("anonymous") self.labelStatus.setText("Unlogin") headers = [ "Type", "Permission", "Num", "User", "Group", "Size", "Updated", "Name" ] self.tableTypeCol = 0 self.tablePermissionCol = 1 self.tableNumCol = 2 self.tableUserCol = 3 self.tableGroupCol = 4 self.tableSizeCol = 5 self.tableUpdatedCol = 6 self.tableNameCol = 7 self.tableWidget.setColumnCount(len(headers)) for idx, header in enumerate(headers): headerItem = QTableWidgetItem(header) font = headerItem.font() font.setBold(True) headerItem.setFont(font) self.tableWidget.setHorizontalHeaderItem(idx, headerItem) self.tableWidget.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableWidget.verticalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection) self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows) self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tableWidget.setShowGrid(False) self.tableWidget.verticalHeader().setHidden(True) self.progressBar.setMaximum(100) self.progressBar.setValue(0) self.findChild(QRadioButton, "radioButtonPASV").setChecked(True) self.onPASV() self.init_connect() # Data section self.pwd = "/" self.selectedFileItems = None self.serverIP = None self.serverPort = None self.commandSocket = None self.dataSocket = None self.mode = self.MODE_PASV self.pasvDataIp = None self.pasvDataPort = None self.portListenSocket = None self.messages = []
def _setup_ui(self): self.setFrameStyle(QFrame.StyledPanel | QFrame.Raised) # Set up our basic layout layout = QVBoxLayout(self) self.setLayout(layout) layout.setSpacing(1) layout.setMargin(1) self._table = QTableWidget(TRACE_DEPTH, 6, self) layout.addWidget(self._table) for c, n in enumerate(['EB', 'FB', 'Z', 'I', 'S', 'W']): item = QTableWidgetItem(n) self._table.setHorizontalHeaderItem(c, item) font = self._table.horizontalHeader().font() font.setPointSize(8) font.setBold(True) item.setFont(font) self._table.horizontalHeader().setFont(font) self._table.verticalHeader().setFont(font) font.setBold(False) for r in range(TRACE_DEPTH): for c in range(6): item = QTableWidgetItem('') item.setFont(font) item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsDragEnabled | Qt.ItemIsEnabled) self._table.setItem(r, c, item) self._table.setColumnWidth(0, 10) self._table.setColumnWidth(1, 10) for c in range(2, 6): self._table.horizontalHeader().setSectionResizeMode( c, QHeaderView.Stretch) self._table.resizeRowsToContents() self._table.verticalScrollBar().setValue( self._table.verticalScrollBar().maximum()) controls_widget = QWidget(self) layout.addWidget(controls_widget) controls_layout = QGridLayout(controls_widget) controls_layout.setSpacing(0) controls_layout.setMargin(0) b = self._create_button('DUMP', controls_layout, 1, 1) b.pressed.connect(self._dump_trace) b = self._create_button('SAVE', controls_layout, 1, 2) b.pressed.connect(self._save_trace) s = QSpacerItem(260, 20) controls_layout.addItem(s, 1, 3) label = QLabel('TRACE', controls_widget) font = label.font() font.setPointSize(12) font.setBold(True) label.setFont(font) label.setAlignment(Qt.AlignLeft) controls_layout.addWidget(label, 1, 4, 2, 1, Qt.AlignLeft)