增加了 派单任务详情弹窗

This commit is contained in:
2025-11-08 18:25:16 +08:00
parent 52d753267b
commit aa7dd7974a
7 changed files with 489 additions and 10 deletions

View File

@ -4,13 +4,36 @@ from PySide6.QtCore import Qt
from PySide6.QtGui import QDoubleValidator
import sys
# 调整计划方量
"""
调整计划方量, 左侧减按钮, 右侧加按钮
这里的 最小值、最大值、初始值 需要读取配置文件来决定
"""
class CustomLineEdit(QLineEdit):
def __init__(self, default_text: str, parent=None):
super().__init__(parent)
self.default_text = default_text # 保存初始化时的默认文本
self.setText(self.default_text) # 初始化为默认文本
def focusOutEvent(self, event):
super().focusOutEvent(event) # 先执行父类的焦点离开逻辑
# 检查文本是否为空(或仅含空格)
current_text = self.text().strip()
if not current_text:
self.setText(self.default_text) # 为空则恢复默认值
else: # 不为空,显示一位小数
value = round(float(current_text), 1)
self.setText(f"{value:.1f}")
self.setCursorPosition(0) # 光标移到最前面 (保证数值显示完整)
class ValueAdjuster(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.min_value = 0 # 最小值
self.max_value = 99 # 最大值
self.value = 2.5 # 初始值
self.min_value = 0.0 # 最小值
self.max_value = 99.0 # 最大值
self.value = 2.5 # 初始值 (需要显示一位数字)
self.setFixedSize(102, 32)
@ -21,7 +44,9 @@ class ValueAdjuster(QWidget):
self.minus_btn.setCursor(Qt.PointingHandCursor)
# 中间的编辑栏
self.line_edit = QLineEdit(f"{self.value:.1f}") # 显示1位小数
# 支持显示位小数
# self.line_edit = QLineEdit(f"{self.value:.1f}") # 显示1位小数
self.line_edit = CustomLineEdit(f"{self.value:.1f}") # 显示1位小数
self.line_edit.setFixedSize(40, 26)
# 加号按钮
@ -31,8 +56,8 @@ class ValueAdjuster(QWidget):
# 配置QLineEdit支持数字输入+居中显示
self.line_edit.setAlignment(Qt.AlignCenter) # 文本居中
# 限制输入为浮点数(支持负数,范围可自定义)
self.line_edit.setValidator(QDoubleValidator(0, 99, 1, self)) # 最多1位小数
# 限制输入为浮点数(范围可自定义)
self.line_edit.setValidator(QDoubleValidator(self.min_value, self.max_value, 1, self)) # 最多1位小数 (必选)
self.line_edit.textChanged.connect(self.on_text_changed) # 监听输入变化
# 设置样式表(保持与按钮风格统一)
@ -112,7 +137,7 @@ class ValueAdjuster(QWidget):
self.line_edit.setText(f"{self.value:.1f}")
def on_text_changed(self, text):
"""监听输入框文本变化更新内部value"""
"""监听输入框文本变化, 更新内部value"""
if not text:
return
try:
@ -126,7 +151,7 @@ class ValueAdjuster(QWidget):
except ValueError:
pass
# 获取具体的方量数值
# 获取具体的方量数值float类型 (一位小数)
def get_value(self):
return self.value