add(派单任务和管片任务的刷新)

This commit is contained in:
yaj
2026-03-06 18:33:58 +08:00
parent 37d60ba63e
commit a3b6287808
9 changed files with 393 additions and 42 deletions

View File

@ -1,6 +1,6 @@
from PySide6.QtWidgets import (QWidget, QVBoxLayout, QHBoxLayout, QLabel,
QApplication)
from PySide6.QtCore import Qt
from PySide6.QtCore import Qt, Signal, QTimer
from PySide6.QtGui import QPainter, QPixmap
from .value_adjuster import ValueAdjuster
from .switch_button import SwitchButton
@ -10,6 +10,14 @@ import resources.resources_rc
from utils.image_paths import ImagePaths
class PlanWidget(QWidget):
# 自动派单切换信号
# True: 自动派单 False: 手动派单
auto_dispatch_signal = Signal(bool)
# 计划表单最终的确认的修改的方量
# 对应的任务名, 最终的方量
final_modify_volume_signal = Signal(str, float)
def __init__(self, parent=None):
super().__init__(parent)
# 加载背景图
@ -25,6 +33,16 @@ class PlanWidget(QWidget):
"auto_dispatch": None # 自动派单SwitchButton
}
# ==================================================
# 用于计划表单的修改方量的最终确认
# 1、确认最终修改的方量的计时器超时代表着确认了最终的方量
self.volume_timer = QTimer(self)
self.volume_timer.setInterval(2500) # 2.5秒延迟(根据需求调整)
self.volume_timer.setSingleShot(True) # 单次触发:避免重复执行
self.volume_timer.timeout.connect(self._sync_final_volume)
# 2、该计划表单对应的任务名
self.plan_table_task_name = None
# 主垂直布局
main_layout = QVBoxLayout(self)
main_layout.setContentsMargins(13, 5, 6, 15)
@ -63,6 +81,8 @@ class PlanWidget(QWidget):
row2_layout.addWidget(label2)
self.fangliang_adjuster = ValueAdjuster() # 导入的方量调整控件
self.fangliang_adjuster.minus_btn.clicked.connect(self._reset_volume_timer)
self.fangliang_adjuster.plus_btn.clicked.connect(self._reset_volume_timer)
row2_layout.addWidget(self.fangliang_adjuster)
main_layout.addLayout(row2_layout)
self.controls["volume"] = self.fangliang_adjuster
@ -75,7 +95,7 @@ class PlanWidget(QWidget):
row3_layout.addWidget(status_icon3)
row3_layout.addSpacing(4)
label3 = QLabel("计划配比")
label3 = QLabel("")
label3.setStyleSheet("font-size: 18px; color: #03f5ff;")
row3_layout.addWidget(label3)
@ -117,11 +137,24 @@ class PlanWidget(QWidget):
row5_layout.addWidget(label5)
self.switch = SwitchButton()
self.switch.switched.connect(self.auto_dispatch_signal)
self.switch.setChecked(True)
row5_layout.addWidget(self.switch, alignment=Qt.AlignLeft)
main_layout.addLayout(row5_layout)
self.controls["auto_dispatch"] = self.switch
def _reset_volume_timer(self):
"""每次调整方量时,重置定时器(倒计时重新开始)"""
if self.volume_timer.isActive(): # 如果定时器正在运行,先停止
self.volume_timer.stop()
self.volume_timer.start() # 重启定时器
def _sync_final_volume(self):
"""同步 确认的最终的修改方量"""
final_volume = self.fangliang_adjuster.get_value()
# print("最终确认的方量为:", final_volume)
self.final_modify_volume_signal.emit(self.plan_table_task_name, final_volume)
def paintEvent(self, event):
"""绘制背景图片"""
painter = QPainter(self)
@ -150,10 +183,21 @@ class PlanWidget(QWidget):
self.controls["status"].setText(new_status)
def set_auto_dispatch(self, is_checked:bool):
"""修改自动派单开关状态, true: 开启自动派单, False: 关闭自动派单"""
"""修改自动派单开关状态, true: 自动派单, False: 动派单"""
if self.controls["auto_dispatch"]:
self.controls["auto_dispatch"].setChecked(is_checked)
def set_modify_volume_status(self, status:bool):
"""设置 计划表单中修改方量控件的状态, 是否能够修改方量
status: True, 能够修改方量
False, 不能修改方量
"""
self.fangliang_adjuster.setEnabled(status)
def set_plan_table_task_name(self, task_name:str):
"""设置 计划表单对应的选中任务名"""
self.plan_table_task_name = task_name
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = PlanWidget()