add(派单任务和管片任务的刷新)
This commit is contained in:
@ -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()
|
||||
|
||||
Reference in New Issue
Block a user