修改料斗重量更新逻辑

This commit is contained in:
2025-11-06 15:10:58 +08:00
parent 5eedd77c8f
commit 75df5d79ef
2 changed files with 40 additions and 19 deletions

View File

@ -18,6 +18,9 @@ class ConveyorSystemWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("料斗与传送带界面")
self._last_upper_hopper_weight = None # 上一次的上料斗重量初始为None
self.setFixedSize(443, 190)
self.init_ui()
self._bind()
@ -110,12 +113,16 @@ class ConveyorSystemWidget(QWidget):
# 6、强制刷新UI确保立即显示变化
self.upper_inner_label.update()
def setConveyorHopperWeight(self, weight:float):
def setConveyorHopperWeight(self, weight:int):
if weight != self._last_upper_hopper_weight:
# 1、更新传送带中的 上料斗内部进度显示
# 假设上料斗装满之后,总的重量为 5100kg (褚工说设置为 6000kg 11/6)
total_weight = 6000
self._update_upper_inner_height(total_weight, weight)
# 2、将self._last_upper_hopper_weight设置为当前重量
self._last_upper_hopper_weight = weight
def create_conveyor(self):
"""创建传送带组件包含左右齿轮group容器背景为传送带图片"""
group = QWidget()

View File

@ -29,6 +29,10 @@ class HopperWidget(QWidget):
self.upper_arch_breaking_status = False # 初始为不破拱状态
self.lower_arch_breaking_status = False # 初始为不破拱状态
# 上一次获取到的料斗的当前重量
self._last_upper_hopper_weight = None # 上一次的上料斗重量初始为None
self._last_lower_hopper_weight = None # 上一次的下料斗重量初始为None
# 料斗控制界面的固定大小为 332x482
# 需要根据具体的料斗的图片来调整
# self.setFixedSize(356, 496)
@ -336,7 +340,9 @@ class HopperWidget(QWidget):
self.upper_inner_label.update()
# 上料斗重量设置
def setUpperHopperWeight(self, weight:float):
def setUpperHopperWeight(self, weight:int):
# 仅当重量变化时,才更新标签和进度
if weight != self._last_upper_hopper_weight:
# 1、更新上料斗重量标签显示最新重量
self.upper_weight_label.setText(f"{weight}kg")
@ -345,6 +351,9 @@ class HopperWidget(QWidget):
total_weight = 6000
self._update_upper_inner_height(total_weight, weight)
# 3、设置_last_upper_hopper_weight 为当前重量
self._last_upper_hopper_weight = weight
# 上料斗方量设置
def setUpperHopperVolume(self, volume: float):
"""Args:
@ -361,7 +370,9 @@ class HopperWidget(QWidget):
self.upper_clamp_widget.set_angle(angle)
# 下料斗重量设置
def setLowerHopperWeight(self, weight:float):
def setLowerHopperWeight(self, weight:int):
# 仅当重量变化时,才更新标签和进度
if weight != self._last_lower_hopper_weight:
# 1、更新下料斗显示标签显示的重量
self.lower_weight_label.setText(f"{weight}kg")
@ -370,6 +381,9 @@ class HopperWidget(QWidget):
total_weight = 6000
self._update_lower_inner_height(total_weight, weight)
# 3、设置_last_lower_hopper_weight 为当前重量
self._last_lower_hopper_weight = weight
def _update_lower_inner_height(self, total_weight, current_weight: float):
# 1、处理边界值
clamped_weight = max(0.0, min(current_weight, total_weight))