增加了 派单任务详情弹窗
This commit is contained in:
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user