def setVarietyContents(self, row_contents): self.variety_table.clear() table_headers = ['序号', '品种', '权限'] self.variety_table.setColumnCount(len(table_headers)) self.variety_table.setHorizontalHeaderLabels(table_headers) self.variety_table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.variety_table.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) current_row = 0 for row_item in row_contents: self.variety_table.insertRow(current_row) item0 = QTableWidgetItem(str(current_row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.variety_table.setItem(current_row, 0, item0) item1 = QTableWidgetItem(row_item['name']) item1.setTextAlignment(Qt.AlignCenter) self.variety_table.setItem(current_row, 1, item1) for variety_item in row_item['subs']: current_row += 1 self.variety_table.insertRow(current_row) item0 = QTableWidgetItem(str(current_row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = variety_item['id'] self.variety_table.setItem(current_row, 0, item0) item1 = QTableWidgetItem(variety_item['name']) item1.setTextAlignment(Qt.AlignCenter) self.variety_table.setItem(current_row, 1, item1) item2 = QTableWidgetItem("点击开启") item2.setTextAlignment(Qt.AlignCenter) item2.setForeground(QBrush(QColor(250,50,50))) self.variety_table.setItem(current_row, 2, item2) current_row += 1
def show_warehouses(self, house_list): table_headers = ['编号', '地区', '名称', '简称', '地址', '增加日期'] self.setColumnCount(len(table_headers)) self.setHorizontalHeaderLabels(table_headers) self.setRowCount(len(house_list)) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) for row, row_item in enumerate(house_list): item0 = QTableWidgetItem(row_item['fixed_code']) item0.id = row_item['id'] item0.setTextAlignment(Qt.AlignCenter) self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['area']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['name']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item['short_name']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem(row_item['addr']) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) item5 = QTableWidgetItem(row_item['create_time']) item5.setTextAlignment(Qt.AlignCenter) self.setItem(row, 5, item5)
def show_configs(self, records): self.config_table.cellChanged.disconnect() self.config_table.clear() table_headers = ['序号', '客户端名称', '客户端ID', '可登录', '截止日期'] self.config_table.setColumnCount(len(table_headers)) self.config_table.setHorizontalHeaderLabels(table_headers) self.config_table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.config_table.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch) self.config_table.setRowCount(len(records)) for row, row_item in enumerate(records): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.config_table.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['name']) item1.setTextAlignment(Qt.AlignCenter) self.config_table.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['machine_code']) item2.setTextAlignment(Qt.AlignCenter) self.config_table.setItem(row, 2, item2) if row_item['accessed']: item3 = QTableWidgetItem('允许登录') item3.setCheckState(Qt.Checked) item3.setForeground(QBrush(QColor(100,200,180))) item4 = QTableWidgetItem(row_item['expire_time']) else: item3 = QTableWidgetItem('不能登录') item3.setCheckState(Qt.Unchecked) item3.setForeground(QBrush(QColor(200, 100, 80))) item4 = QTableWidgetItem('') item3.setTextAlignment(Qt.AlignCenter) item4.setTextAlignment(Qt.AlignCenter) self.config_table.setItem(row, 3, item3) self.config_table.setItem(row, 4, item4) self.config_table.cellChanged.connect(self.config_table_checked_changed) # 恢复信号
def showRowContents(self, row_list): self.clear() self.setRowCount(len(row_list)) self.setColumnCount(len(self.KEY_LABELS) + 2) self.setHorizontalHeaderLabels( [header[1] for header in self.KEY_LABELS] + ['', '']) self.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode(3, QHeaderView.Stretch) for row, content_item in enumerate(row_list): for col, header in enumerate(self.KEY_LABELS): if col == 0: table_item = QTableWidgetItem(str(row + 1)) table_item.id = content_item[header[0]] else: table_item = QTableWidgetItem(str(content_item[header[0]])) table_item.setTextAlignment(Qt.AlignCenter) self.setItem(row, col, table_item) # if col in self.COLUMNS_CHECKED: # 复选框按钮 # check_button = TableCheckBox(checked=content_item[header[0]]) # check_button.check_activated.connect(self.checked_button_changed) # self.setCellWidget(row, col, check_button) if col == len(self.KEY_LABELS) - 1: # 增加【查看】按钮 edit_button = TableRowReadButton('编辑') edit_button.button_clicked.connect( self.edit_button_clicked) self.setCellWidget(row, col + 1, edit_button) # # 增加【删除】按钮 delete_button = TableRowDeleteButton('删除') delete_button.button_clicked.connect( self.delete_button_clicked) self.setCellWidget(row, col + 2, delete_button)
def table_show_content(self, contents): self.manger_table.cellChanged.disconnect() self.manger_table.clear() table_headers = ['品种', '代码', '是否交割'] self.manger_table.setColumnCount(len(table_headers)) self.manger_table.setRowCount(len(contents)) self.manger_table.setHorizontalHeaderLabels(table_headers) self.manger_table.horizontalHeader().setSectionResizeMode(2, QHeaderView.ResizeToContents) for row, row_item in enumerate(contents): item0 = QTableWidgetItem(row_item['variety_name']) item0.id = row_item['id'] item0.setTextAlignment(Qt.AlignCenter) self.manger_table.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['variety_en']) if row_item['is_delivery']: item2 = QTableWidgetItem('有交割') item2.setCheckState(Qt.Checked) else: item2 = QTableWidgetItem('无交割') item2.setCheckState(Qt.Unchecked) item1.setTextAlignment(Qt.AlignCenter) item2.setTextAlignment(Qt.AlignCenter) self.manger_table.setItem(row, 1, item1) self.manger_table.setItem(row, 2, item2) self.manger_table.cellChanged.connect(self.manager_table_checked_changed)
def readonly_cell(text, id, cell): item = QTableWidgetItem(str(text)) item.setFlags(item.flags() & ~Qt.ItemIsEditable) item.id = id item.cell = cell return item
def showRowContents(self, row_list): self.clear() table_headers = ['序号', '创建日期', '标题', ''] self.setColumnCount(len(table_headers)) self.setRowCount(len(row_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode(3, QHeaderView.ResizeToContents) for row, row_item in enumerate(row_list): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['create_time']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['title']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem('阅读') item3.setForeground(QBrush(QColor(50, 50, 220))) item3.setTextAlignment(Qt.AlignCenter) item3.file_url = row_item['file_url'] self.setItem(row, 3, item3)
def setRowContents(self, row_list): self.clear() self.setRowCount(len(row_list)) self.setColumnCount(len(self.KEY_LABELS) + 1) self.setHorizontalHeaderLabels([l[1] for l in self.KEY_LABELS] + ['']) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode( 0, QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode( len(self.KEY_LABELS), QHeaderView.ResizeToContents) for row, user_item in enumerate(row_list): print(user_item) for col, header in enumerate(self.KEY_LABELS): if col == 0: table_item = QTableWidgetItem(str(row + 1)) table_item.id = user_item[header[0]] else: table_item = QTableWidgetItem(str(user_item[header[0]])) # 选择框按钮 if col in self.CHECK_COLUMNS: check_box = TableCheckBox(checked=user_item[header[0]]) check_box.check_activated.connect(self.check_box_changed) self.setCellWidget(row, col, check_box) table_item.setTextAlignment(Qt.AlignCenter) self.setItem(row, col, table_item) # 增加【编辑】按钮 if col == len(self.KEY_LABELS) - 1: edit_button = TableRowReadButton('编辑') edit_button.button_clicked.connect( self.edit_button_clicked) self.setCellWidget(row, col + 1, edit_button)
def showRowContents(self, row_list): self.clear() table_headers = ["序号","日期", "时间", "事件", "预期值"] self.setColumnCount(len(table_headers)) self.setRowCount(len(row_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) for row,row_item in enumerate(row_list): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['date']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['time']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item['event']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem(row_item['expected']) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4)
def showRowContents(self, row_list): self.clear() table_headers = ['序号','日期', '名称', '地区', '等级', '价格', '增减'] self.setColumnCount(len(table_headers)) self.setRowCount(len(row_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) for row, row_item in enumerate(row_list): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row,0,item0) item1 = QTableWidgetItem(row_item['custom_time']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['name']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item['area']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem(row_item['level']) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) item5 = QTableWidgetItem(row_item['price']) item5.setTextAlignment(Qt.AlignCenter) self.setItem(row, 5, item5) item6 = QTableWidgetItem(row_item['increase']) item6.setTextAlignment(Qt.AlignCenter) self.setItem(row, 6, item6)
def setRowContents(self, row_list): self.module_data = row_list self.clear() self.setRowCount(0) header_labels = ['序号', '名称', '排序'] self.setColumnCount(len(header_labels)) self.setHorizontalHeaderLabels(header_labels) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) current_row = 0 for row, module_item in enumerate(self.module_data): self.insertRow(current_row) table_item0 = QTableWidgetItem(str(current_row + 1)) table_item0.id = module_item['id'] table_item0.is_sub = False table_item0.setTextAlignment(Qt.AlignCenter) table_item0.setBackground(QBrush(QColor(218,233,231))) self.setItem(current_row, 0, table_item0) table_item1 = QTableWidgetItem(module_item['name']) table_item1.setTextAlignment(Qt.AlignCenter) table_item1.setBackground(QBrush(QColor(218,233,231))) self.setItem(current_row, 1, table_item1) table_item2 = QTableWidgetItem('↑') table_item2.setTextAlignment(Qt.AlignCenter) table_item2.setBackground(QBrush(QColor(218, 233, 231))) self.setItem(current_row, 2, table_item2) current_row += 1 for sub_module in module_item['subs']: self.insertRow(current_row) table_item0 = QTableWidgetItem(str(current_row + 1)) table_item0.setTextAlignment(Qt.AlignCenter) table_item0.id = sub_module['id'] table_item0.is_sub = True self.setItem(current_row, 0, table_item0) table_item1 = QTableWidgetItem(sub_module['name']) table_item1.setTextAlignment(Qt.AlignCenter) self.setItem(current_row, 1, table_item1) table_item2 = QTableWidgetItem('↑') table_item2.setTextAlignment(Qt.AlignCenter) self.setItem(current_row, 2, table_item2) current_row += 1
def show_tables(self, table_list): table_headers = ["序号", "标题", "起始时间", "截止时间", "数据来源", "备注", ""] self.setColumnCount(len(table_headers)) self.setHorizontalHeaderLabels(table_headers) self.setRowCount(len(table_list)) self.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch) for row, row_item in enumerate(table_list): item0 = QTableWidgetItem(str(row + 1)) item0.id = row_item["id"] item0.sql_table = row_item["sql_table"] item0.setTextAlignment(Qt.AlignCenter) self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item["title"]) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item["min_date"]) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item["max_date"]) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem("来源") item4.show_text = row_item["origin"] item4.setForeground(QBrush(QColor(50, 50, 150))) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) item5 = QTableWidgetItem("备注") item5.show_text = row_item["note"] item5.setForeground(QBrush(QColor(150, 50, 50))) item5.setTextAlignment(Qt.AlignCenter) self.setItem(row, 5, item5) chart_count = row_item["charts_count"] btn = QPushButton(str(chart_count), self) if chart_count else QPushButton(self) btn.setStyleSheet("border:none;color:rgb(50,160,100)") btn.resize(50, 50) btn.setCursor(Qt.PointingHandCursor) btn.setIcon(QIcon('media/charts_active.png')) btn.row = row btn.clicked.connect(self.view_chart_of_table) self.setCellWidget(row, 6, btn) if not row_item["is_active"]: item0.setForeground(QBrush(QColor(80, 80, 80))) item1.setForeground(QBrush(QColor(80, 80, 80))) item2.setForeground(QBrush(QColor(80, 80, 80))) item3.setForeground(QBrush(QColor(80, 80, 80))) item4.setForeground(QBrush(QColor(80, 80, 80))) item5.setForeground(QBrush(QColor(80, 80, 80))) btn.setStyleSheet("border:none;color:rgb(80,80,80)") btn.setIcon(QIcon('media/charts.png'))
def setRowContents(self, row_list): self.clear() self.setRowCount(0) header_labels = ['序号', '名称', '代码'] self.setColumnCount(len(header_labels)) self.setHorizontalHeaderLabels(header_labels) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) current_row = 0 for row, variety_group in enumerate(row_list): self.insertRow(current_row) table_item0 = QTableWidgetItem(str(current_row + 1)) table_item0.id = variety_group['id'] table_item0.setTextAlignment(Qt.AlignCenter) table_item0.setBackground(QBrush(QColor(218, 233, 231))) self.setItem(current_row, 0, table_item0) table_item1 = QTableWidgetItem(variety_group['name']) table_item1.setTextAlignment(Qt.AlignCenter) table_item1.setBackground(QBrush(QColor(218, 233, 231))) self.setItem(current_row, 1, table_item1) table_item2 = QTableWidgetItem('') table_item2.setBackground(QBrush(QColor(218,233,231))) self.setItem(current_row, 2, table_item2) current_row += 1 for sub_item in variety_group['subs']: self.insertRow(current_row) table_item0 = QTableWidgetItem(str(current_row + 1)) table_item0.setTextAlignment(Qt.AlignCenter) table_item0.id = sub_item['id'] self.setItem(current_row, 0, table_item0) table_item1 = QTableWidgetItem(sub_item['name']) table_item1.setTextAlignment(Qt.AlignCenter) self.setItem(current_row, 1, table_item1) table_item2 = QTableWidgetItem(sub_item['name_en']) table_item2.setTextAlignment(Qt.AlignCenter) self.setItem(current_row, 2, table_item2) current_row += 1 return
def setRowContents(self, row_contents): self.clear() table_headers = ["序号", "用户名", "手机", "加入时间", "最近登录", "邮箱", "角色", "备注名", "状态"] self.setColumnCount(len(table_headers)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) self.setRowCount(len(row_contents)) for row,row_item in enumerate(row_contents): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] item0.role_num = row_item['role_num'] item0.is_active = row_item['is_active'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['username']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['phone']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row,2, item2) item3 = QTableWidgetItem(row_item['join_time']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem(row_item['update_time']) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) item5 = QTableWidgetItem(row_item['email']) item5.setTextAlignment(Qt.AlignCenter) self.setItem(row, 5, item5) item6 = QTableWidgetItem(row_item["role_text"]) item6.setTextAlignment(Qt.AlignCenter) self.setItem(row, 6, item6) item7 = QTableWidgetItem(row_item["note"]) item7.setTextAlignment(Qt.AlignCenter) self.setItem(row, 7, item7) if row_item["is_active"]: item8 = QTableWidgetItem("在职") else: item8 = QTableWidgetItem("离职") item0.setForeground(QBrush(QColor(140, 140, 140))) item1.setForeground(QBrush(QColor(140, 140, 140))) item2.setForeground(QBrush(QColor(140, 140, 140))) item3.setForeground(QBrush(QColor(140, 140, 140))) item4.setForeground(QBrush(QColor(140, 140, 140))) item5.setForeground(QBrush(QColor(140, 140, 140))) item6.setForeground(QBrush(QColor(140, 140, 140))) item7.setForeground(QBrush(QColor(140, 140, 140))) item8.setForeground(QBrush(QColor(140, 140, 140))) item8.setTextAlignment(Qt.AlignCenter) self.setItem(row, 8, item8)
def showRowContents(self, row_list): self.clear() table_headers = ["序号", "名称", "地区", "等级", "价格", "增减", "日期"] self.setColumnCount(len(table_headers)) self.setRowCount(len(row_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode( 0, QHeaderView.ResizeToContents) for row, row_item in enumerate(row_list): self.setRowHeight(row, 32) item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['name']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['area']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item['level']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem(row_item['price']) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) increase = row_item['increase'] item5 = QTableWidgetItem(increase) item5.setTextAlignment(Qt.AlignCenter) if float(increase) > 0: item5.setForeground(QBrush(QColor(220, 100, 100))) else: item5.setForeground(QBrush(QColor(100, 220, 100))) self.setItem(row, 5, item5) item6 = QTableWidgetItem(row_item['custom_time']) item6.setTextAlignment(Qt.AlignCenter) self.setItem(row, 6, item6) # 设置表格高度 self.setMinimumHeight(self.rowCount() * 33 + 30) # 竖向自动拉伸 if self.rowCount() >= 45: self.verticalHeader().setSectionResizeMode(QHeaderView.Stretch) else: self.verticalHeader().setSectionResizeMode( QHeaderView.Fixed) # 固定行高,设置的大小
def showRowContens(self, news_list): self.clear() table_headers = ["序号", "标题"] self.setColumnCount(len(table_headers)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) for row, row_item in enumerate(news_list): self.insertRow(row) item0 = QTableWidgetItem(str(row + 1)) item0.id = row_item['id'] item0.file_url = row_item['file_url'] item0.setTextAlignment(Qt.AlignCenter) self.setItem(row,0, item0) item1 = QTableWidgetItem(row_item['title']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1)
def show_houses(self, warehouses): self.clear() table_headers = ['序号','仓库编号', '仓库名称'] self.setColumnCount(len(table_headers)) self.setHorizontalHeaderLabels(table_headers) self.setRowCount(len(warehouses)) for row,row_item in enumerate(warehouses): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['fixed_code']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['name']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2)
def showRowContents(self, notice_list): self.clear() table_headers = ['序号', '标题', '日期', '类型', ''] self.setColumnCount(len(table_headers)) self.setRowCount(len(notice_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode( 0, QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode( 3, QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode( 4, QHeaderView.ResizeToContents) item4font = QFont() item4font.setPointSize(10) for row, row_item in enumerate(notice_list): self.setRowHeight(row, 32) item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['title']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['create_time']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item['category']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem("阅读") item4.setFont(item4font) item4.setForeground(QBrush(QColor(50, 50, 220))) item4.file_url = row_item['file_url'] item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) # 设置表格高度 self.setMinimumHeight(self.rowCount() * 32 + 45) if self.rowCount() >= 45: # 竖向自动拉伸 self.verticalHeader().setSectionResizeMode(QHeaderView.Stretch) else: self.verticalHeader().setSectionResizeMode( QHeaderView.Fixed) # 固定行高,设置的大小
def showRowContents(self, row_list): self.clear() table_headers = ['序号', '时间', '内容'] self.setColumnCount(len(table_headers)) self.setRowCount(len(row_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode( 0, QHeaderView.ResizeToContents) for row, row_item in enumerate(row_list): item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['custom_time']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['content']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2)
def showRowContents(self, row_list): self.clear() table_headers = ['序号', '日期', '时间', '事件', '预期值'] self.setColumnCount(len(table_headers)) self.setRowCount(len(row_list)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode( 0, QHeaderView.ResizeToContents) for row, row_item in enumerate(row_list): self.setRowHeight(row, 32) item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['date']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem(row_item['time']) item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem(row_item['event']) item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3) item4 = QTableWidgetItem(row_item['expected']) item4.setTextAlignment(Qt.AlignCenter) self.setItem(row, 4, item4) # 设置表格高度 self.setMinimumHeight(self.rowCount() * 33 + 30) # 竖向自动拉伸 if self.rowCount() >= 45: self.verticalHeader().setSectionResizeMode(QHeaderView.Stretch) else: self.verticalHeader().setSectionResizeMode( QHeaderView.Fixed) # 固定行高,设置的大小
def showRowContens(self, advertisement_list): self.clear() table_headers = ['序号', '创建日期','图片','内容'] self.setColumnCount(len(table_headers)) self.setHorizontalHeaderLabels(table_headers) self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) for row, row_item in enumerate(advertisement_list): self.insertRow(row) item0 = QTableWidgetItem(str(row + 1)) item0.setTextAlignment(Qt.AlignCenter) item0.id = row_item['id'] self.setItem(row, 0, item0) item1 = QTableWidgetItem(row_item['create_time']) item1.setTextAlignment(Qt.AlignCenter) self.setItem(row, 1, item1) item2 = QTableWidgetItem("查看") item2.image_url = row_item['image_url'] item2.setTextAlignment(Qt.AlignCenter) self.setItem(row, 2, item2) item3 = QTableWidgetItem("查看") item3.file_url = row_item['file_url'] item3.setTextAlignment(Qt.AlignCenter) self.setItem(row, 3, item3)
def showRowContents(self, row_list): self.clear() self.setRowCount(len(row_list)) self.setColumnCount(len(self.KEY_LABELS) + 1) self.setHorizontalHeaderLabels( [header[1] for header in self.KEY_LABELS] + ['']) self.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch) for row, content_item in enumerate(row_list): for col, header in enumerate(self.KEY_LABELS): if col == 0: table_item = QTableWidgetItem(str(row + 1)) table_item.id = content_item[header[0]] else: table_item = QTableWidgetItem(str(content_item[header[0]])) table_item.setTextAlignment(Qt.AlignCenter) self.setItem(row, col, table_item) if col == len(self.KEY_LABELS) - 1: # 增加【设置】按钮 option_button = TableRowReadButton('设置') option_button.button_clicked.connect( self.option_button_clicked) self.setCellWidget(row, col + 1, option_button)
def mouse_clicked_cell(self, row, col): if col != 2 or row == 0: return current_is_sub = self.item(row, 0).is_sub current_id = self.item(row, 0).id print(current_is_sub, current_id) if current_is_sub: # 子项目移动 pre_item = self.item(row - 1, 0) if not pre_item.is_sub: # 上一项不是子项 return current_id = self.item(row, 0).id current_is_sub = self.item(row, 0).is_sub current_text = self.item(row, 1).text() print('请求交换的id:', (current_id, pre_item.id)) if not self.request_reverse_module_sort(current_id, pre_item.id): return # 上一项序号+1 pre_index = int(pre_item.text()) + 1 pre_item.setText(str(pre_index)) self.removeRow(row) self.insertRow(row - 1) table_item0 = QTableWidgetItem(str(row)) table_item0.setTextAlignment(Qt.AlignCenter) table_item0.id = current_id table_item0.is_sub = current_is_sub self.setItem(row - 1, 0, table_item0) table_item1 = QTableWidgetItem(current_text) table_item1.setTextAlignment(Qt.AlignCenter) self.setItem(row - 1, 1, table_item1) table_item2 = QTableWidgetItem('↑') table_item2.setTextAlignment(Qt.AlignCenter) self.setItem(row - 1, 2, table_item2) else: # 父项目移动 # 往上找,找到主级菜单 index_insert = row while index_insert > 0: pre_item = self.item(index_insert - 1, 0) index_insert -= 1 if not pre_item or not pre_item.is_sub: break print(index_insert) # 保存要移动的菜单 move_module = {'id': self.item(row, 0).id, 'is_sub': self.item(row, 0).is_sub, 'text': self.item(row, 1).text()} # 要删除的行 remove_row = [row] sub_modules = list() # 要移动的菜单列表 # 往下找,找到主级菜单 next_row = row + 1 next_item = self.item(next_row, 0) while next_item is not None: next_item = self.item(next_row, 0) if next_item is None or not next_item.is_sub: break sub_modules.append({ 'id': next_item.id, 'is_sub': next_item.is_sub, 'text': self.item(next_row, 1).text() }) remove_row.append(next_row) next_row += 1 if not next_item or not next_item.is_sub: break move_module['subs'] = sub_modules reverse_id = (self.item(index_insert, 0).id, self.item(row, 0).id) print('请求交换id的sort', reverse_id) if not self.request_reverse_module_sort(self.item(index_insert, 0).id, self.item(row, 0).id): return # 移除行 print(remove_row) for _ in remove_row: self.removeRow(remove_row[0]) # 只要移除一行,索引就变化,所以移除第一个索引值的即可 print(move_module) # 插入数据 self.insertRow(index_insert) table_item0 = QTableWidgetItem(str(index_insert + 1)) table_item0.id = move_module['id'] table_item0.is_sub = move_module['is_sub'] table_item0.setTextAlignment(Qt.AlignCenter) table_item0.setBackground(QBrush(QColor(218, 233, 231))) self.setItem(index_insert, 0, table_item0) table_item1 = QTableWidgetItem(move_module['text']) table_item1.setTextAlignment(Qt.AlignCenter) table_item1.setBackground(QBrush(QColor(218, 233, 231))) self.setItem(index_insert, 1, table_item1) table_item2 = QTableWidgetItem('↑') table_item2.setTextAlignment(Qt.AlignCenter) table_item2.setBackground(QBrush(QColor(218, 233, 231))) self.setItem(index_insert, 2, table_item2) index_insert += 1 for sub_module in move_module['subs']: self.insertRow(index_insert) table_item0 = QTableWidgetItem(str(index_insert + 1)) table_item0.setTextAlignment(Qt.AlignCenter) table_item0.id = sub_module['id'] table_item0.is_sub = sub_module['is_sub'] self.setItem(index_insert, 0, table_item0) table_item1 = QTableWidgetItem(sub_module['text']) table_item1.setTextAlignment(Qt.AlignCenter) self.setItem(index_insert, 1, table_item1) table_item2 = QTableWidgetItem('↑') table_item2.setTextAlignment(Qt.AlignCenter) self.setItem(index_insert, 2, table_item2) index_insert += 1 # 重新调整序号 for row in range(self.rowCount()): self.item(row, 0).setText(str(row + 1))