2025-06-16 17:17:55 +08:00
|
|
|
from PySide6.QtWidgets import (
|
|
|
|
|
QDialog, QLabel, QLineEdit, QComboBox, QPushButton,
|
|
|
|
|
QVBoxLayout, QHBoxLayout, QFrame
|
|
|
|
|
)
|
|
|
|
|
from PySide6.QtCore import Qt
|
|
|
|
|
from PySide6.QtGui import QFont
|
|
|
|
|
|
|
|
|
|
class LoadingDialogUI(QDialog):
|
|
|
|
|
def __init__(self):
|
|
|
|
|
super().__init__()
|
|
|
|
|
self.setWindowTitle("上料操作")
|
2025-06-19 10:12:01 +08:00
|
|
|
self.setFixedSize(550, 250)
|
2025-06-16 17:17:55 +08:00
|
|
|
|
|
|
|
|
# 设置字体
|
|
|
|
|
self.normal_font = QFont("微软雅黑", 12)
|
|
|
|
|
|
|
|
|
|
# 初始化UI
|
|
|
|
|
self.init_ui()
|
|
|
|
|
|
|
|
|
|
def init_ui(self):
|
|
|
|
|
"""初始化UI"""
|
|
|
|
|
# 主布局
|
|
|
|
|
self.main_layout = QVBoxLayout(self)
|
|
|
|
|
self.main_layout.setContentsMargins(20, 20, 20, 20)
|
|
|
|
|
self.main_layout.setSpacing(0) # 移除布局间距
|
|
|
|
|
|
|
|
|
|
# 创建内容区域
|
|
|
|
|
self.create_content_frame()
|
|
|
|
|
|
|
|
|
|
# 创建按钮
|
|
|
|
|
self.create_buttons()
|
|
|
|
|
|
|
|
|
|
def create_content_frame(self):
|
|
|
|
|
"""创建内容区域"""
|
|
|
|
|
# 创建一个带边框的容器
|
|
|
|
|
container = QFrame()
|
|
|
|
|
container.setStyleSheet("""
|
|
|
|
|
QFrame {
|
|
|
|
|
border: 1px solid #e0e0e0;
|
|
|
|
|
background-color: white;
|
|
|
|
|
}
|
|
|
|
|
""")
|
|
|
|
|
|
|
|
|
|
# 容器的垂直布局
|
|
|
|
|
container_layout = QVBoxLayout(container)
|
|
|
|
|
container_layout.setContentsMargins(0, 0, 0, 0)
|
|
|
|
|
container_layout.setSpacing(0)
|
|
|
|
|
|
|
|
|
|
# 通用样式
|
|
|
|
|
label_style = """
|
|
|
|
|
QLabel {
|
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
|
color: #333333;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
border: none;
|
|
|
|
|
border-right: 1px solid #e0e0e0;
|
|
|
|
|
border-bottom: 1px solid #e0e0e0;
|
|
|
|
|
padding: 0 8px;
|
|
|
|
|
}
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
input_style = """
|
|
|
|
|
QLineEdit {
|
|
|
|
|
border: none;
|
|
|
|
|
border-right: 1px solid #e0e0e0;
|
|
|
|
|
border-bottom: 1px solid #e0e0e0;
|
|
|
|
|
background-color: white;
|
|
|
|
|
selection-background-color: #0078d4;
|
|
|
|
|
padding: 0 8px;
|
|
|
|
|
}
|
|
|
|
|
QLineEdit:focus {
|
|
|
|
|
background-color: #f8f8f8;
|
|
|
|
|
}
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
value_style = """
|
|
|
|
|
QLabel {
|
|
|
|
|
background-color: white;
|
|
|
|
|
border: none;
|
|
|
|
|
border-right: 1px solid #e0e0e0;
|
|
|
|
|
border-bottom: 1px solid #e0e0e0;
|
|
|
|
|
padding: 0 8px;
|
|
|
|
|
}
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
# 第一行:订单号和产品
|
|
|
|
|
row1 = QHBoxLayout()
|
|
|
|
|
row1.setSpacing(0)
|
2025-06-19 10:12:01 +08:00
|
|
|
self.order_label = QLabel("订单号")
|
|
|
|
|
self.order_label.setFont(self.normal_font)
|
|
|
|
|
self.order_label.setStyleSheet(label_style)
|
|
|
|
|
self.order_label.setFixedWidth(100)
|
|
|
|
|
self.order_label.setFixedHeight(45)
|
|
|
|
|
|
|
|
|
|
self.order_input = QLineEdit()
|
|
|
|
|
self.order_input.setFont(self.normal_font)
|
|
|
|
|
self.order_input.setPlaceholderText("请扫描订单号")
|
|
|
|
|
self.order_input.setStyleSheet(input_style)
|
|
|
|
|
self.order_input.setFixedHeight(45)
|
|
|
|
|
row1.addWidget(self.order_label)
|
|
|
|
|
row1.addWidget(self.order_input, 1)
|
|
|
|
|
container_layout.addLayout(row1)
|
|
|
|
|
|
|
|
|
|
# 添加水平分隔布局
|
|
|
|
|
split_layout = QHBoxLayout()
|
|
|
|
|
split_layout.setSpacing(0)
|
|
|
|
|
left_split = QLabel()
|
|
|
|
|
left_split.setFixedWidth(100)
|
|
|
|
|
left_split.setFixedHeight(1)
|
|
|
|
|
left_split.setStyleSheet("background-color: #e0e0e0;")
|
|
|
|
|
right_split = QLabel()
|
|
|
|
|
right_split.setFixedHeight(1)
|
|
|
|
|
right_split.setStyleSheet("background-color: #e0e0e0;")
|
|
|
|
|
split_layout.addWidget(left_split)
|
|
|
|
|
split_layout.addWidget(right_split, 1)
|
|
|
|
|
container_layout.addLayout(split_layout)
|
|
|
|
|
|
2025-06-16 17:17:55 +08:00
|
|
|
# 第二行:托盘号
|
|
|
|
|
row2 = QHBoxLayout()
|
|
|
|
|
row2.setSpacing(0)
|
|
|
|
|
|
2025-06-25 14:56:04 +08:00
|
|
|
self.tray_label = QLabel("托盘号")
|
2025-06-16 17:17:55 +08:00
|
|
|
self.tray_label.setFont(self.normal_font)
|
|
|
|
|
self.tray_label.setStyleSheet(label_style)
|
|
|
|
|
self.tray_label.setFixedWidth(100)
|
|
|
|
|
self.tray_label.setFixedHeight(45)
|
|
|
|
|
|
|
|
|
|
self.tray_input = QLineEdit()
|
|
|
|
|
self.tray_input.setFont(self.normal_font)
|
2025-06-25 14:56:04 +08:00
|
|
|
self.tray_input.setPlaceholderText("请扫描托盘号")
|
2025-06-16 17:17:55 +08:00
|
|
|
self.tray_input.setStyleSheet(input_style)
|
|
|
|
|
self.tray_input.setFixedHeight(45)
|
|
|
|
|
|
|
|
|
|
row2.addWidget(self.tray_label)
|
|
|
|
|
row2.addWidget(self.tray_input, 1)
|
|
|
|
|
container_layout.addLayout(row2)
|
|
|
|
|
|
2025-06-19 10:12:01 +08:00
|
|
|
# 添加水平分隔布局
|
|
|
|
|
split_layout2 = QHBoxLayout()
|
|
|
|
|
split_layout2.setSpacing(0)
|
|
|
|
|
left_split2 = QLabel()
|
|
|
|
|
left_split2.setFixedWidth(100)
|
|
|
|
|
left_split2.setFixedHeight(1)
|
|
|
|
|
left_split2.setStyleSheet("background-color: #e0e0e0;")
|
|
|
|
|
right_split2 = QLabel()
|
|
|
|
|
right_split2.setFixedHeight(1)
|
|
|
|
|
right_split2.setStyleSheet("background-color: #e0e0e0;")
|
|
|
|
|
split_layout2.addWidget(left_split2)
|
|
|
|
|
split_layout2.addWidget(right_split2, 1)
|
|
|
|
|
container_layout.addLayout(split_layout2)
|
|
|
|
|
|
2025-06-16 17:17:55 +08:00
|
|
|
# 第三行:轴型和托盘料
|
|
|
|
|
row3 = QHBoxLayout()
|
|
|
|
|
row3.setSpacing(0)
|
|
|
|
|
|
|
|
|
|
axis_layout = QHBoxLayout()
|
|
|
|
|
axis_layout.setSpacing(0)
|
|
|
|
|
self.axis_label = QLabel("轴型")
|
|
|
|
|
self.axis_label.setFont(self.normal_font)
|
|
|
|
|
self.axis_label.setStyleSheet(label_style)
|
|
|
|
|
self.axis_label.setFixedWidth(100)
|
|
|
|
|
self.axis_label.setFixedHeight(40)
|
|
|
|
|
|
|
|
|
|
self.axis_value = QLabel("--")
|
|
|
|
|
self.axis_value.setFont(self.normal_font)
|
|
|
|
|
self.axis_value.setStyleSheet(value_style)
|
|
|
|
|
self.axis_value.setFixedHeight(40)
|
|
|
|
|
|
|
|
|
|
axis_layout.addWidget(self.axis_label)
|
|
|
|
|
axis_layout.addWidget(self.axis_value, 1)
|
|
|
|
|
|
2025-06-17 14:12:34 +08:00
|
|
|
tier_layout = QHBoxLayout()
|
|
|
|
|
tier_layout.setSpacing(0)
|
|
|
|
|
self.pallet_tier_label = QLabel("托盘料")
|
|
|
|
|
self.pallet_tier_label.setFont(self.normal_font)
|
|
|
|
|
self.pallet_tier_label.setStyleSheet(label_style)
|
|
|
|
|
self.pallet_tier_label.setFixedWidth(100)
|
|
|
|
|
self.pallet_tier_label.setFixedHeight(40)
|
2025-06-16 17:17:55 +08:00
|
|
|
|
2025-06-20 08:51:13 +08:00
|
|
|
# 将标签改为输入框
|
|
|
|
|
self.pallet_tier_value = QLineEdit()
|
2025-06-17 14:12:34 +08:00
|
|
|
self.pallet_tier_value.setFont(self.normal_font)
|
2025-06-20 08:51:13 +08:00
|
|
|
self.pallet_tier_value.setStyleSheet("""
|
|
|
|
|
QLineEdit {
|
|
|
|
|
padding: 5px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
QLineEdit:focus {
|
|
|
|
|
border: 1px solid #66afe9;
|
|
|
|
|
outline: none;
|
|
|
|
|
}
|
|
|
|
|
""")
|
2025-06-17 14:12:34 +08:00
|
|
|
self.pallet_tier_value.setFixedHeight(40)
|
2025-06-20 08:51:13 +08:00
|
|
|
self.pallet_tier_value.setPlaceholderText(" -- ")
|
2025-06-16 17:17:55 +08:00
|
|
|
|
2025-06-17 14:12:34 +08:00
|
|
|
tier_layout.addWidget(self.pallet_tier_label)
|
|
|
|
|
tier_layout.addWidget(self.pallet_tier_value, 1)
|
2025-06-16 17:17:55 +08:00
|
|
|
|
|
|
|
|
row3.addLayout(axis_layout, 1)
|
2025-06-17 14:12:34 +08:00
|
|
|
row3.addLayout(tier_layout, 1)
|
2025-06-16 17:17:55 +08:00
|
|
|
container_layout.addLayout(row3)
|
|
|
|
|
|
|
|
|
|
# 第四行:数量和重量
|
|
|
|
|
row4 = QHBoxLayout()
|
|
|
|
|
row4.setSpacing(0)
|
|
|
|
|
|
|
|
|
|
quantity_layout = QHBoxLayout()
|
|
|
|
|
quantity_layout.setSpacing(0)
|
|
|
|
|
self.quantity_label = QLabel("数量")
|
|
|
|
|
self.quantity_label.setFont(self.normal_font)
|
|
|
|
|
self.quantity_label.setStyleSheet(label_style)
|
|
|
|
|
self.quantity_label.setFixedWidth(100)
|
|
|
|
|
self.quantity_label.setFixedHeight(40)
|
|
|
|
|
|
|
|
|
|
self.quantity_value = QLabel("--")
|
|
|
|
|
self.quantity_value.setFont(self.normal_font)
|
|
|
|
|
self.quantity_value.setStyleSheet(value_style)
|
|
|
|
|
self.quantity_value.setFixedHeight(40)
|
|
|
|
|
|
|
|
|
|
quantity_layout.addWidget(self.quantity_label)
|
|
|
|
|
quantity_layout.addWidget(self.quantity_value, 1)
|
|
|
|
|
|
|
|
|
|
weight_layout = QHBoxLayout()
|
|
|
|
|
weight_layout.setSpacing(0)
|
|
|
|
|
self.weight_label = QLabel("重量")
|
|
|
|
|
self.weight_label.setFont(self.normal_font)
|
|
|
|
|
self.weight_label.setStyleSheet(label_style)
|
|
|
|
|
self.weight_label.setFixedWidth(100)
|
|
|
|
|
self.weight_label.setFixedHeight(40)
|
|
|
|
|
|
|
|
|
|
self.weight_value = QLabel("--")
|
|
|
|
|
self.weight_value.setFont(self.normal_font)
|
|
|
|
|
self.weight_value.setStyleSheet(value_style)
|
|
|
|
|
self.weight_value.setFixedHeight(40)
|
|
|
|
|
|
|
|
|
|
weight_layout.addWidget(self.weight_label)
|
|
|
|
|
weight_layout.addWidget(self.weight_value, 1)
|
|
|
|
|
|
|
|
|
|
row4.addLayout(quantity_layout, 1)
|
|
|
|
|
row4.addLayout(weight_layout, 1)
|
|
|
|
|
container_layout.addLayout(row4)
|
|
|
|
|
|
|
|
|
|
# 添加弹性空间
|
|
|
|
|
container_layout.addStretch()
|
|
|
|
|
|
|
|
|
|
# 将容器添加到主布局
|
|
|
|
|
self.main_layout.addWidget(container)
|
|
|
|
|
|
|
|
|
|
def create_buttons(self):
|
|
|
|
|
"""创建按钮"""
|
|
|
|
|
button_layout = QHBoxLayout()
|
|
|
|
|
button_layout.setContentsMargins(0, 10, 0, 0)
|
|
|
|
|
|
|
|
|
|
self.confirm_button = QPushButton("确认")
|
|
|
|
|
self.confirm_button.setFont(self.normal_font)
|
|
|
|
|
self.confirm_button.setFixedSize(100, 35)
|
|
|
|
|
self.confirm_button.setStyleSheet("""
|
|
|
|
|
QPushButton {
|
|
|
|
|
background-color: #0078d4;
|
|
|
|
|
color: white;
|
|
|
|
|
border: none;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
padding: 8px 16px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
QPushButton:hover {
|
|
|
|
|
background-color: #106ebe;
|
|
|
|
|
}
|
|
|
|
|
QPushButton:pressed {
|
|
|
|
|
background-color: #005a9e;
|
|
|
|
|
}
|
|
|
|
|
""")
|
|
|
|
|
|
|
|
|
|
self.cancel_button = QPushButton("取消")
|
|
|
|
|
self.cancel_button.setFont(self.normal_font)
|
|
|
|
|
self.cancel_button.setFixedSize(100, 35)
|
|
|
|
|
self.cancel_button.setStyleSheet("""
|
|
|
|
|
QPushButton {
|
|
|
|
|
background-color: white;
|
|
|
|
|
color: #333333;
|
|
|
|
|
border: 1px solid #e0e0e0;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
padding: 8px 16px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
QPushButton:hover {
|
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
|
border-color: #bdbdbd;
|
|
|
|
|
}
|
|
|
|
|
QPushButton:pressed {
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border-color: #bdbdbd;
|
|
|
|
|
}
|
|
|
|
|
""")
|
|
|
|
|
|
|
|
|
|
button_layout.addStretch()
|
|
|
|
|
button_layout.addWidget(self.confirm_button)
|
|
|
|
|
button_layout.addSpacing(30) # 添加30px的间距
|
|
|
|
|
button_layout.addWidget(self.cancel_button)
|
|
|
|
|
|
|
|
|
|
self.main_layout.addLayout(button_layout)
|