固定表头

This commit is contained in:
zhu-mengmeng 2025-06-16 13:21:17 +08:00
parent bacd7e84ab
commit acb8e2f854
4 changed files with 61 additions and 13 deletions

View File

@ -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"
}
}

View File

@ -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)

6
utils/api_utils.py Normal file
View File

@ -0,0 +1,6 @@
import requests
import json
from .config_loader import load_config
class ApiUtils:

View File

@ -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):