[bugfix] 新增lineEdit值范围限制

This commit is contained in:
Sam 2025-02-26 17:56:45 +08:00
parent c2995b4899
commit 8e77e3752b
3 changed files with 37 additions and 4 deletions

View File

@ -2,7 +2,7 @@ from PySide6.QtWidgets import (QWidget, QDialog, QVBoxLayout, QComboBox, QPushBu
QLabel, QTableWidgetItem, QAbstractScrollArea, QHBoxLayout, QLabel, QTableWidgetItem, QAbstractScrollArea, QHBoxLayout,
QStyledItemDelegate, QCheckBox, QHeaderView, QSlider) QStyledItemDelegate, QCheckBox, QHeaderView, QSlider)
from PySide6.QtCore import Qt, Signal, QEvent from PySide6.QtCore import Qt, Signal, QEvent
from PySide6.QtGui import QPainter, QColor, QPen, QBrush, QPainterPath, QIcon, QPixmap from PySide6.QtGui import QPainter, QColor, QPen, QBrush, QPainterPath, QIcon, QPixmap, QDoubleValidator
from PySide6.QtCore import QFile from PySide6.QtCore import QFile
import sys import sys
@ -169,6 +169,24 @@ class AudioFilterWidget(QWidget):
self.ui = Ui_Widget() self.ui = Ui_Widget()
self.ui.setupUi(self) self.ui.setupUi(self)
# 添加验证器限制输入范围为0-20
validator = QDoubleValidator(0, 20, 2)
validator.setNotation(QDoubleValidator.StandardNotation)
self.ui.lineEdit_11.setValidator(validator)
self.ui.lineEdit_11.textChanged.connect(lambda text: self._validate_input(self.ui.lineEdit_11, 0, 20))
# 添加验证器限制输入范围为-99到12
volume_validator = QDoubleValidator(-99, 12, 2)
volume_validator.setNotation(QDoubleValidator.StandardNotation)
self.ui.lineEdit_10.setValidator(volume_validator)
self.ui.lineEdit_10.textChanged.connect(lambda text: self._validate_input(self.ui.lineEdit_10, -99, 12))
# 添加验证器限制输入范围为-99到12
volume_validator = QDoubleValidator(0, 1, 2) # 参数为(最小值, 最大值, 小数位数)
volume_validator.setNotation(QDoubleValidator.StandardNotation)
self.ui.lineEdit_12.setValidator(volume_validator)
self.ui.lineEdit_13.setValidator(volume_validator)
# 添加slope的固定刻度值 # 添加slope的固定刻度值
self.slope_values = [6, 12, 18, 24, 30, 36] self.slope_values = [6, 12, 18, 24, 30, 36]
@ -1369,6 +1387,21 @@ class AudioFilterWidget(QWidget):
self.ui.verticalSlider_3.setValue(0) self.ui.verticalSlider_3.setValue(0)
self.ui.verticalSlider_4.setValue(0) self.ui.verticalSlider_4.setValue(0)
def _validate_input(self, line_edit, min_val, max_val):
"""验证并限制输入值在指定范围内"""
try:
if not line_edit.text():
return
value = float(line_edit.text())
if value > max_val:
line_edit.setText(str(max_val))
elif value < min_val:
line_edit.setText(str(min_val))
except ValueError:
# 如果转换失败(非数字输入),保留原值
pass
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -2,8 +2,8 @@ parameter,value
dataset.audio_mode,0 dataset.audio_mode,0
dataset.send_action,0 dataset.send_action,0
dataset.tuning_parameters.mix_parameters[0].ch_n,0 dataset.tuning_parameters.mix_parameters[0].ch_n,0
dataset.tuning_parameters.mix_parameters[0].mix_left_data,1.0 dataset.tuning_parameters.mix_parameters[0].mix_left_data,0.1
dataset.tuning_parameters.mix_parameters[0].mix_right_data,1.0 dataset.tuning_parameters.mix_parameters[0].mix_right_data,1
dataset.tuning_parameters.mix_parameters[1].ch_n,1 dataset.tuning_parameters.mix_parameters[1].ch_n,1
dataset.tuning_parameters.mix_parameters[1].mix_left_data,0.0 dataset.tuning_parameters.mix_parameters[1].mix_left_data,0.0
dataset.tuning_parameters.mix_parameters[1].mix_right_data,0.0 dataset.tuning_parameters.mix_parameters[1].mix_right_data,0.0
@ -872,7 +872,7 @@ dataset.tuning_parameters.delay_parameters[4].delay_data,0.0
dataset.tuning_parameters.delay_parameters[5].ch_n,5 dataset.tuning_parameters.delay_parameters[5].ch_n,5
dataset.tuning_parameters.delay_parameters[5].delay_data,0.0 dataset.tuning_parameters.delay_parameters[5].delay_data,0.0
dataset.tuning_parameters.volume_parameters[0].ch_n,0 dataset.tuning_parameters.volume_parameters[0].ch_n,0
dataset.tuning_parameters.volume_parameters[0].vol_data,10.0 dataset.tuning_parameters.volume_parameters[0].vol_data,12
dataset.tuning_parameters.volume_parameters[1].ch_n,1 dataset.tuning_parameters.volume_parameters[1].ch_n,1
dataset.tuning_parameters.volume_parameters[1].vol_data,0.0 dataset.tuning_parameters.volume_parameters[1].vol_data,0.0
dataset.tuning_parameters.volume_parameters[2].ch_n,2 dataset.tuning_parameters.volume_parameters[2].ch_n,2

1 parameter value
2 dataset.audio_mode 0
3 dataset.send_action 0
4 dataset.tuning_parameters.mix_parameters[0].ch_n 0
5 dataset.tuning_parameters.mix_parameters[0].mix_left_data 1.0 0.1
6 dataset.tuning_parameters.mix_parameters[0].mix_right_data 1.0 1
7 dataset.tuning_parameters.mix_parameters[1].ch_n 1
8 dataset.tuning_parameters.mix_parameters[1].mix_left_data 0.0
9 dataset.tuning_parameters.mix_parameters[1].mix_right_data 0.0
872 dataset.tuning_parameters.delay_parameters[5].ch_n 5
873 dataset.tuning_parameters.delay_parameters[5].delay_data 0.0
874 dataset.tuning_parameters.volume_parameters[0].ch_n 0
875 dataset.tuning_parameters.volume_parameters[0].vol_data 10.0 12
876 dataset.tuning_parameters.volume_parameters[1].ch_n 1
877 dataset.tuning_parameters.volume_parameters[1].vol_data 0.0
878 dataset.tuning_parameters.volume_parameters[2].ch_n 2