pyqt4文档阅读(1):QSpinBox

本系列文章长期更新修改.


QSpinBox,中文翻译是选值框?其实就是下面这玩意.

pyqt4文档阅读(1):QSpinBox_第1张图片

属性:

Methods

  • __init__ (self, QWidget parent = None)
  • QString cleanText (self)
  • bool event (self, QEvent e)
  • fixup (self, QString str)
  • int maximum (self)
  • int minimum (self)
  • QString prefix (self)
  • setMaximum (self, int max)
  • setMinimum (self, int min)
  • setPrefix (self, QString p)
  • setRange (self, int min, int max)
  • setSingleStep (self, int val)
  • setSuffix (self, QString s)
  • setValue (self, int val)
  • int singleStep (self)
  • QString suffix (self)
  • QString textFromValue (self, int v)
  • (QValidator.State, int pos) validate (self, QString input, int pos)
  • int value (self)
  • int valueFromText (self, QString text)

Qt Signals

  • void valueChanged (int)
  • void valueChanged (const QString&)


详细分析:

1.QDoubleSpinBox

QSpinBox是用来处理整数选值的输入框,若要实现浮点数的选值,需使用另一种选值框QDoubleSpinBox

2.输入

QSpinBox支持若干种输入方式,包括点击输入框旁边的上下按钮,鼠标滑轮的滑动或者按键盘的上下键,还有在输入框里直接输入数值.

3.信号

每当输入框里的数值被更改,信号valueChanged就会被激活.

两个信号,一个返回value,一个返回输入框实际的文本.

(使用返回文本的信号有时会导致奇怪的bug,待续)

4.min,max,step

QSpinBox有三个重要的属性值,min,max和step.

min和max就是限制输入的最大最小值(闭区间),step是按一次键盘上下键后,数值增加或减少的量.

这三个值有默认值,分别是0,99,1.

这三个值的获取和修改可以通过下列函数实现:

  • int maximum (self)
  • int minimum (self)
  • setMaximum (self, int max)
  • setMinimum (self, int min)
  • setRange (self, int min, int max)
  • setSingleStep (self, int val)
  • int singleStep (self)
其中setRange相当于同时设置min和max.

5.反复循环

假如当前框里数值已经是最大值了,但你却继续按键盘的上,这时候应该有两种策略:

(1)数值不变

(2)数值变成最小值

默认的是数值不变这种,如果你想改变策略,你可以使用下列方法(true表示反复循环,默认是false):

  • setWrapping (self, bool w)
  • bool wrapping (self)
这两个方法是继承自QAbstractSpinBox的.

6.前缀后缀

有时候,我们的输入框里不仅仅是个数字,还有一些文字.
比如让你选择"第x天",虽然输入的核心是那个x,但我们需要一些辅助文字来提示用户.
并且,我们不希望这些文字影响到用户的数字输入,这时候我们可以设置前缀后缀的办法.
  • QString prefix (self)
  • setPrefix (self, QString p)
  • setSuffix (self, QString s)
  • QString suffix (self)
prefix是前缀,suffix是后缀

7.获取文本

有两个函数可以获取输入框的文本,一个是继承下来的text(),另一个是cleanText().
text()返回输入框实际的内容,而cleanText()会去除掉前缀后缀和前导后导空白.
  • QString text (self)
  • QString cleanText (self)
注意这两个函数返回的都是字符串.

8.特殊选项

有时候选值框除了可以选择数值之外,可能还有一个特殊的取值.
比如一个价格的选值框,可能有各种数值,还有一个"免费"的特殊取值.
这个时候我们可以用到下面的函数:
  • QString specialValueText (self)
  • setSpecialValueText (self, QString s)
注意这个特殊取值只有一个,并且会占用取值范围的最小值.
也就是说,虽然在输入框里的文本是"免费",但是用value()得到的是选值框取值范围的最小值.

9.文本验证

由于QSpinBox也支持键盘输入字符,因此我们需要对输入的文本进行合法性验证.
QSpinBox提供了类似于QValidator的验证,它直接提供了validate()和fixup()函数.
  • (QValidator.State, int pos) validate (self, QString input, int pos)
  • fixup (self, QString str)
这两个函数一般是Qt调用,参考QValidator篇.

10.文本与值的转换

QSpinBox使用下面两个函数实现文本里的数字和内部的值之间的转换.
这是QSpinBox内部一定会用到的函数,一般我们不直接使用这两个函数.
  • int valueFromText (self, QString text)
  • QString textFromValue (self, int v)

你可能感兴趣的:(qt)