返回顶部

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

[复制链接]
awagink 显示全部楼层 发表于 2021-1-4 20:49:17 |阅读模式 打印 上一主题 下一主题
[color=rgba(0, 0, 0, 0.75)]文章目录





    一、前言
    二、效果演示
    三、组件属性
    四、常用方法
    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里的虚函数也不过多讲解,完全可以自己用函数实现。


二、效果演示
spinbox.gif


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



您需要登录后才可以回帖 登录 | 注册

本版积分规则

纳速健身网成立于2006年8月,是国内优秀健身运动网站,现拥浏览人数超30万。网站是集养生、武术、太极拳和健身气功等多种健身项目于一体的多功能交流平台。平台提供大量优质的教学视频、伴奏音乐(太极拳晨练音乐,广场舞音乐,健身气功音乐)、图文教程、运动科普和经验分享,为健身爱好者提供完善的运动指导平台。
  • 纳速QQ群乙:151815303
  • 纳速QQ群丙:79104490
  • 微信交流群:微信好友搜索【nasuwang】加小纳微信进群交流健身知识,备注【纳速】
  •                     或者扫描页面底部右侧二维码添加小纳微信>>>
  • 微信公众号

  • 微信群客服交流

  • Copyright © 2006-2021, 纳速健身网. | | 辽ICP备13002388号-1 辽公安网备21050202000005号公安网备号 纳速武术-乙 QQ