From acb8e2f85415f0a7b2790488888bd8447279dcf9 Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Mon, 16 Jun 2025 13:21:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E8=A1=A8=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/app_config.json | 5 ++++- ui/main_window_ui.py | 27 ++++++++++++++++++--------- utils/api_utils.py | 6 ++++++ widgets/main_window.py | 36 +++++++++++++++++++++++++++++++++--- 4 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 utils/api_utils.py diff --git a/config/app_config.json b/config/app_config.json index 33a27f1..07d5037 100644 --- a/config/app_config.json +++ b/config/app_config.json @@ -6,7 +6,8 @@ "enable_serial_ports": false, "enable_keyboard_listener": false, "enable_camera": false - } + }, + "base_url":"http://192.168.0.133:8080" }, "database": { "default": "sqlite", @@ -68,5 +69,7 @@ "stop_bits": 1, "timeout": 1 } + },"apis":{ + "tpda":"/apjt/xcsc/tpda/list" } } \ No newline at end of file diff --git a/ui/main_window_ui.py b/ui/main_window_ui.py index db87a8e..b19f399 100644 --- a/ui/main_window_ui.py +++ b/ui/main_window_ui.py @@ -501,28 +501,37 @@ class MainWindowUI(QMainWindow): self.record_layout.addWidget(self.record_title) # 创建表格 - self.record_table = QTableWidget(14, 9) # 14行9列:序号、订单、品名、规格、托号、轴包装号、重量、净重、完成时间 + self.record_table = QTableWidget(13, 9) # 13行9列:序号、订单、品名、规格、托号、轴包装号、重量、净重、完成时间 - # 应用通用表格设置 - self.setup_table_common(self.record_table) + # 应用通用表格设置但保留表头 + self.setup_table_common(self.record_table, hide_headers=False) # 设置列标题 record_headers = ["序号", "订单", "品名", "规格", "托号", "轴包装号", "毛重", "净重", "完成时间"] - for col, header in enumerate(record_headers): - self.record_table.setItem(0, col, self.create_header_item(header)) + self.record_table.setHorizontalHeaderLabels(record_headers) + + # 设置表头样式 + self.record_table.horizontalHeader().setStyleSheet(""" + QHeaderView::section { + background-color: #f8f8f8; + padding: 4px; + border: 1px solid #dddddd; + font-weight: bold; + } + """) # 设置行高 - self.record_table.setRowHeight(0, 35) # 列标题行高 - self.record_table.setRowHeight(13, 35) # 合计行高 + self.record_table.setRowHeight(12, 35) # 合计行高 # 设置数据行的行高 - for row in range(1, 13): # 记录行 + for row in range(0, 12): # 记录行 self.record_table.setRowHeight(row, 35) # 设置列宽 - column_widths = [70, 200, 130, 130, 160, 120, 120, 120, 160] # 各列的默认宽度 + column_widths = [70, 200, 130, 130, 160, 120, 120, 120, 160] for col, width in enumerate(column_widths): self.record_table.setColumnWidth(col, width) + self.record_table.horizontalHeader().resizeSection(col, width) # 添加表格到布局 self.record_layout.addWidget(self.record_table) diff --git a/utils/api_utils.py b/utils/api_utils.py new file mode 100644 index 0000000..c147d25 --- /dev/null +++ b/utils/api_utils.py @@ -0,0 +1,6 @@ +import requests +import json +from .config_loader import load_config + +class ApiUtils: + diff --git a/widgets/main_window.py b/widgets/main_window.py index 7c0c28b..4b17e7d 100644 --- a/widgets/main_window.py +++ b/widgets/main_window.py @@ -23,7 +23,7 @@ from utils.register_handlers import ( from PySide6.QtWidgets import ( QWidget, QMessageBox, QTableWidgetItem, QStackedWidget, QLabel, QMainWindow, QTableWidget, QMenu, QComboBox, QFormLayout, QDialog, QVBoxLayout, QHBoxLayout, QPushButton, - QStatusBar, QSplitter, QFrame + QStatusBar, QSplitter, QFrame, QHeaderView ) from PySide6.QtCore import Qt, QTimer, Slot from PySide6.QtGui import QBrush, QColor @@ -1195,15 +1195,41 @@ class MainWindow(MainWindowUI): except: pass + # 设置表头固定不动 + self.record_table.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed) + self.record_table.horizontalHeader().setStretchLastSection(False) + self.record_table.horizontalHeader().setSectionsMovable(False) + self.record_table.horizontalHeader().setSectionsClickable(False) + + # 将第一行设置为表头,并固定在顶部 + self.record_table.setHorizontalHeaderLabels(["序号", "订单", "品名", "规格", "托号", "轴包装号", "毛重", "净重", "完成时间"]) + self.record_table.horizontalHeader().setVisible(True) + + # 设置表头样式 + self.record_table.horizontalHeader().setStyleSheet(""" + QHeaderView::section { + background-color: #f8f8f8; + padding: 4px; + border: 1px solid #dddddd; + font-weight: bold; + } + """) + + # 设置列宽 + column_widths = [70, 200, 130, 130, 160, 120, 120, 120, 160] + for col, width in enumerate(column_widths): + self.record_table.setColumnWidth(col, width) + self.record_table.horizontalHeader().resizeSection(col, width) + # 添加所有包装记录到表格 for index, item in enumerate(package_record): # 在包装记录表中添加新行 - row_index = index + 1 # 从第2行开始(索引为1) + row_index = index # 从第1行开始(索引为0),因为现在使用真正的表头 self.record_table.insertRow(row_index) # 设置包装记录数据 # 序号 - 第1列 - seq_item = QTableWidgetItem(str(row_index)) + seq_item = QTableWidgetItem(str(index + 1)) seq_item.setTextAlignment(Qt.AlignCenter) self.record_table.setItem(row_index, 0, seq_item) @@ -1246,6 +1272,10 @@ class MainWindow(MainWindowUI): pack_time = QTableWidgetItem(str(item[7])) pack_time.setTextAlignment(Qt.AlignCenter) self.record_table.setItem(row_index, 8, pack_time) + + # 设置表格不可编辑 + self.record_table.setEditTriggers(QTableWidget.NoEditTriggers) + # 更新包装记录统计数据 self.update_package_statistics() def update_package_statistics(self):