一、数字选择控件
数字选择控件提供了一对上下箭头,用户可以单击箭头选择数字,也可以直接输入。PySide6 中提供的数据选择控件主要有 QSpinBox(整数数字选择控件)和 QDoubleSpinBox(小数数字选择控件)。
我们可以在终端中使用 pip 安装 pyside6 模块。
pip install pyside6
# 实例方法
text() -> str # 获取值
clear() -> None # 清除值
setAlignment(flag:Qt.Alignment) -> None # 设置对齐方式
setButtonSymbols(bs:Qt.ButtonSymbols) -> None # 设置右侧的按钮样式
setCorrectionMode(cm:Qt.CorrectionMode) -> None # 设置自动修正模式
setKeyboardTracking(kt:bool) -> None # 设置键盘跟踪
setFrame(arg__1:bool) -> None # 设置是否有外边框
setGroupSeparatorShown(shown:bool) -> None # 设置分组分隔符(3位)是否显示
setReadOnly(r:bool) -> None # 设置是否只读
setSpecialValueText(txt:str) -> None # 设置特殊值文本,当显示的值等于允许的最小值,显示该文本
setWrapping(w:bool) -> None # 设置是否可以循环,即最大值后再增大则变成最小值,最小值后再减小则变成最大值
setAccelerated(on:bool) -> None # 当按住增大或减小按钮时,是否加速显示值# 槽函数
selectAll() -> None # 选择显示的值,不包含前缀和后缀
stepDown() -> None # 增大值
stepUp() -> None # 减少值
按钮的样式可以用 setButtonSymbols(QAbstractSpinBox.ButtonSymbols)
方法设置,QAbstractSpinBox.ButtonSymbols 枚举类型参数值如下
QAbstractSpinBox.ButtonSymbols.NoButtons
QAbstractSpinBox.ButtonSymbols.UpDownArrows
QAbstractSpinBox.ButtonSymbols.PlusMinus
用 setCorrectionMode(QAbstractSpinBox.CorrectionMode)
方法设置当输入有误时使用自动修正模式,参数可取值如下:
QAbstractSpinBox.CorrectionMode.CorrectToPreviousValue # 修正成最近正确的值
QAbstractSpinBox.CorrectionMode.CorrectToNearestValue # 修正成最接近正确的值
数字选择类控件常用信号及其说明如下:
editingFinished() # 编辑完成后发射信号
二、整数数字选择控件
QSpinBox 是一个整数数字选择控件,该控件提供了一对上下箭头,用户可以单击箭头选择数字,也可以直接输入。如果输入的数值大于设置的最大值,或小于设置的最小值,QSpinBox 将不会接受输入。
用 QSpinBox 类创建实例对象的方法如下。
QSpinBox(parent:QWidget=None)
其中 parent 是 窗口 或者 容器类控件。
QSpinBox 类的常用方法如下:
# 实例方法
value() -> int # 获取当前值
setDisplayIntegerBase(base:int) -> None # 设置显示的进制
displayIntegerBase() -> int # 获取显示的进制
setMinimum(min:int) -> None # 设置最小值
setMaximum(max:int) -> None # 设置最大值
setRange(min:int, max:int) -> None # 设置范围
minimum() -> int # 获取最小值
maximum() -> int # 获取最大值
setSingleStep(value:int) -> None # 设置步长
singleStep() -> int # 获取步长
setPrefix(prefix:str) -> None # 设置前缀
setSuffix(suffix:str) -> None # 设置后缀
cleanText() -> None # 清除文本# 槽函数
setValue(value:int) -> None # 设置当前值
QSpinBox 类常用的信号及其说明如下:
textChanged(arg__1) # 文本改变时发射信号
valueChanged(arg__1) # 值改变时发射信号
默认情况下,SpinBox 控件的取值范围为 0~99,步长值为 1;
import sysfrom PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QSpinBoxclass MyWidget(QWidget):def __init__(self):# 1.调用父类Qwidget类的__init__()方法super().__init__()# 2.调用setupUi()方法初始化页面self.setup_ui()def setup_ui(self):# 1.设置窗口对象大小self.resize(700, 500)# 2.创建整数数字选择控件对象spinBox = QSpinBox(self)spinBox.resize(100, 30)# 3.设置取值范围spinBox.setRange(10000, 20000)# 4.设置上下箭头的步长值spinBox.setSingleStep(100)# 5.设置控件的当前值spinBox.setValue(15000)# 6.设置值按照千位用逗号隔开spinBox.setGroupSeparatorShown(True)# 7.设置值可以循环spinBox.setWrapping(True)# 8.设置按住按钮时可以加速spinBox.setAccelerated(True)if __name__ == "__main__":# 1.创建一个QApplication类的实例app = QApplication(sys.argv)# 2.创建一个窗口window = MyWidget()# 3.展示窗口window.show()# 4.进入程序的主循环并通过exit()函数确保主循环安全结束sys.exit(app.exec())
三、小数数字选择控件
DoubleSpinBox 与 SpinBox 控件类似,区别是它用来选择小数字,并且默认保留两位小数,它对应 PySide6 中的 QDoubleSpinBox
类。QDoubleSpinBox 控件的使用方法与 QSpinBox 控件类似,但由于它处理的是小数数字,因此该控件提供了一个 setDecimals(prec)
方法,用来设置小数的位数。
import sysfrom PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QDoubleSpinBoxclass MyWidget(QWidget):def __init__(self):# 1.调用父类Qwidget类的__init__()方法super().__init__()# 2.调用setupUi()方法初始化页面self.setup_ui()def setup_ui(self):# 1.设置窗口对象大小self.resize(700, 500)# 2.创建小数数字选择控件对象doubleSpinBox = QDoubleSpinBox(self)doubleSpinBox.resize(100, 30)# 3.设置最小值doubleSpinBox.setMinimum(10)# 4.设置最大值doubleSpinBox.setMaximum(20)# 5.设置小数位数doubleSpinBox.setDecimals(3)# 6.设置上下箭头的步长值doubleSpinBox.setSingleStep(0.001)# 7.设置控件的当前值doubleSpinBox.setValue(15)# 8.设置值可以循环doubleSpinBox.setWrapping(True)# 9.设置按住按钮时可以加速doubleSpinBox.setAccelerated(True)if __name__ == "__main__":# 1.创建一个QApplication类的实例app = QApplication(sys.argv)# 2.创建一个窗口window = MyWidget()# 3.展示窗口window.show()# 4.进入程序的主循环并通过exit()函数确保主循环安全结束sys.exit(app.exec())