纳速健身

标题: [PyQt5]SpinBox整数输入组件和DoubleSpinBox浮点数输入组件 [打印本页]

作者: awagink    时间: 2021-1-4 20:49
标题: [PyQt5]SpinBox整数输入组件和DoubleSpinBox浮点数输入组件
[color=rgba(0, 0, 0, 0.75)]文章目录


一、前言

  SpinBox和DoubleSpinBox用于数字的输入,组件右侧带有上下三角箭头可以调节,当然QT的界面都是可以通过鼠标滚轮来调节的。SpinBox和DoubleSpinBox具体区别如下:

注意: SpinBox和DoubleSpinBox都是QAbstractSpinBox的子类,所以大部分属性和方法都可以通用,如果没有说明,表示通用。另外有些功能可以用QAbstractSpinBox的函数实现,本篇文章不对QAbstractSpinBox的内容进行描述。包括SpinBox和DoubleSpinBox里的虚函数也不过多讲解,完全可以自己用函数实现。


二、效果演示
(, 下载次数: 0)


三、组件属性[color=rgba(0, 0, 0, 0.75)][td]
属性描述
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文档,加上试着写下代码看看效果,我们就能更快地理解每个组件的使用方法。








欢迎光临 纳速健身 (https://nasue.com/) Powered by Discuz! X3.4