awagink 发表于 2021-1-4 20:49:17

[PyQt5]SpinBox整数输入组件和DoubleSpinBox浮点数输入组件

文章目录




一、前言
二、效果演示
三、组件属性
四、常用方法
1.str cleanText()
2.int value()
3.void setValue(int val)
4.int maximum()
5.void setMaximum(int max)
6.int minimum()
7.void setMinimum(int min)
8.void setRange(double minimum, double maximum)
9.str prefix()
10.void setPrefix(str prefix)
11.str suffix()
12.void setSuffix (str suffix)
13.int singleStep()
14.void setSingleStep(int val)
15.int stepType()
16.void setSingleStep(int val)
17.int displayIntegerBase()【SpinBox专有】
18.void setDisplayIntegerBase(int base)【SpinBox专有】
19.int decimals()【DoubleSpinBox专有】
20.void setDecimals(int prec)【DoubleSpinBox专有】
五、常用信号
1.editingFinish()
2.textChanged(str)
3.valueChanged(str)
4.valueChanged(int)
五、总结


一、前言  SpinBox和DoubleSpinBox用于数字的输入,组件右侧带有上下三角箭头可以调节,当然QT的界面都是可以通过鼠标滚轮来调节的。SpinBox和DoubleSpinBox具体区别如下:
[*]SpinBox:用于整数的输入,可以设置不同的进制,这是DoubleSpinBox没有的。
[*]DoubleSpinBox:用于浮点数的输入。
注意: SpinBox和DoubleSpinBox都是QAbstractSpinBox的子类,所以大部分属性和方法都可以通用,如果没有说明,表示通用。另外有些功能可以用QAbstractSpinBox的函数实现,本篇文章不对QAbstractSpinBox的内容进行描述。包括SpinBox和DoubleSpinBox里的虚函数也不过多讲解,完全可以自己用函数实现。二、效果演示


三、组件属性
属性描述
prefix前缀,如 ¥100 的 “¥”
suffix后缀,如 60min 的 “min”
minimum输入数字的下限,可以为负值
maximum输入数字的上限
singleStep步长,每次调节所增减的值
stepType步进模式
默认DefaultStepType为以十进制的方式步进,例如1.0 > 2.0 > 3.0;
AdaptiveDecimalStepType为自适应的方式步进,例如1.0 > 1.1 > 1.2
value显示的数值,输入十进制即可,QT会自动转换为相应的进制值
displayIntegerBase【SpinBox专有】显示的进制,如输入2表示以2进制显示
decimals 【DoubleSpinBox专有】表示小数的位数

四、常用方法1.str cleanText()  返回不带前后缀的数据,例如:SpinBox里的数据显示为 “¥10 /h”,使用该函数返回"10"。2.int value()  获取数值。3.void setValue(int val)  设置数值。4.int maximum()  获取数值上限,例如:返回99,表示设置该组件最大显示数值为99。5.void setMaximum(int max)  设置数值上限,例如:setMaximum(888),表示设置该组件数值上限为888。6.int minimum()  获取数值下限,例如:返回-10,表示设置该组件最小显示数值为-10。7.void setMinimum(int min)  设置数值下限,例如:setMinimum(-15),表示设置该组件数值下限为-15。8.void setRange(double minimum, double maximum)  设置数值的上限和下限。9.str prefix()  获取前缀,例如:返回 “¥10 /h” 的 “¥”。10.void setPrefix(str prefix)  设置前缀,例如:setPrefix("$")。11.str suffix()  获取后缀,例如:返回 “¥10 /h” 的 “/h”。12.void setSuffix (str suffix)  设置后缀,例如:setPrefix(“km”)。13.int singleStep()  获取步长,例如:返回 “1” ,表示每次调节SpinBox数值为±1。14.void setSingleStep(int val)  获取步长,例如:setSingleStep(10),则每次调节数值都是±10。15.int stepType()  获取步进类型,返回的是整数,实际对应stepType的枚举,0 - DefaultStepType,1 - AdaptiveDecimalStepType。16.void setSingleStep(int val)  设置步进类型,例如:setSingleStep(1),表示将步进类型改为AdaptiveDecimalStepType。17.int displayIntegerBase()【SpinBox专有】  返回SpinBox显示的进制,例如:返回10,表示该组件使用10进制模式显示。18.void setDisplayIntegerBase(int base)【SpinBox专有】  设置SpinBox显示的进制,例如:setDisplayIntegerBase(8),表示设置该组件使用8进制模式显示。19.int decimals()【DoubleSpinBox专有】  获取DoubleSpinBox的小数位数。20.void setDecimals(int prec)【DoubleSpinBox专有】  设置DoubleSpinBox的小数位数。五、常用信号1.editingFinish()  当编辑框按下回车后触发。2.textChanged(str)  当SpinBox内容被改变时,返回SpinBox里的文本。3.valueChanged(str)  当SpinBox数值被改变时,返回SpinBox里的文本。4.valueChanged(int)  当SpinBox数值被改变时,返回SpinBox里的数值。五、总结  对SpinBox的合理使用可以大大减少我们的工作量,如果用编辑框和按钮来实现,除了增加工作量外还可能存在潜在的BUG。在实际编写过程中,很多属性都能在QtDesigner里面找到,结合QT文档,加上试着写下代码看看效果,我们就能更快地理解每个组件的使用方法。

页: [1]
查看完整版本: [PyQt5]SpinBox整数输入组件和DoubleSpinBox浮点数输入组件