基本Widgets(18):【类】QSpinBox [官翻]

QSpinBox Class

QSpinBox类提供了一个数字调整框小部件。

Header#include < QSpinBox >
qmakeQT += widgets
InheritsQAbstractSpinBox
Inherited By

详细说明

img

QSpinBox设计用于处理整数离散的值集(例如,月份名称);对浮点值使用QDoubleSpinBox。

QSpinBox允许用户通过单击向上/向下按钮或按键盘上的向上/向下键来增加/减少当前显示的值来选择值。用户也可以手动输入值。数字调整框支持整数值,但可以扩展为使用validate() 、textFromValue() 和valueFromText() 的不同字符串。

每次值更改,QSpinBox都会发出valueChanged() 和textChanged() 信号,前者提供int,后者提供QString。

textChanged() 信号提供带有prefix() 和suffix() 的值。当前值可以用value() 获取,也可以用setValue() 设置。

单击向上/向下按钮或使用键盘加速器的向上和向下箭头将增加或减少大小为singleStep() 的步长的当前值。如果要更改此行为,可以重新实现虚拟函数stepBy() 。最小值和最大值以及步长可以使用其中一个构造函数进行设置,以后可以使用setMinimum() 、setMaximum() 和setSingleStep() 进行更改。

大多数数字调整框是定向的,但QSpinBox也可以作为循环数字调整框运行,即如果范围为0-99,当前值为99,如果wrapping() 设置为true,则单击“up”将得到0。如果需要循环行为,请使用setWrapping() 。

所显示的值可以在前面加上表示货币或度量单位的任意字符串。请参见setPrefix() 和setSuffix() 。数字调整框中的文本使用text() (包括任何prefix() 和suffix() )检索,或使用cleanText() (没有prefix() 、suffix() 和前导或尾随空格)。

除了数值范围之外,通常还需要给用户一个特殊的(通常是默认的)选择。有关如何使用QSpinBox执行此操作的信息,请参见setSpecialValueText() 。

Subclassing QSpinBox

如果使用prefix() 、suffix() 和specialValueText() 不能提供足够的控制,则可以子类化QSpinBox并重新实现valueFromText() 和textFromValue() 。例如,下面是一个自定义数字调整框的代码,允许用户输入图标大小(例如,“32 x 32”):

 int IconSizeSpinBox::valueFromText(const QString &text) const
 {
     static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"));
     Q_ASSERT(regExp.isValid());

     const QRegularExpressionMatch match = regExp.match(text);
     if (match.isValid())
         return match.captured(1).toInt();
     return 0;
 }

 QString IconSizeSpinBox::textFromValue(int value) const
 {
     return tr("%1 x %1").arg(value);
 }
  • 有关完整的源代码,请参见图标示例【 Icons example】

属性

  1. cleanText: const QString 数字调整框的文本,不包括任何前缀、后缀、前导或尾随空格

    Access functions:

    • QString cleanText() const
  2. displayIntegerBase: int 显示数字调整框值的进制
    默认的displayIntegerBase值是10。

    Access functions:

    • int displayIntegerBase() const
    • void setDisplayIntegerBase(int base)
  3. maximum: int 简略

    • int maximum() const
    1. void setMaximum(int max)
  4. minimum: int 简略

    • int minimum() const
    1. void setMinimum(int min)
  5. prefix: QString 简略

    • QString prefix() const
    1. void setPrefix(const QString &prefix)
  6. singleStep: int 简略

    • int singleStep() const
    1. void setSingleStep(int val)
  7. stepType: StepType 简略

    • QAbstractSpinBox::StepType stepType() const
    1. void setStepType(QAbstractSpinBox::StepType stepType)
  8. suffix: QString 简略

    • QString suffix() const
    1. void setSuffix(const QString &suffix)
  9. value: int 简略

    Access functions:

    • int value() const
    • void setValue(int val)

    Notifier signal:

    • void valueChanged(int i)

公共函数

构造和析构

  1. QSpinBox(QWidget *parent = nullptr)
  2. virtual ~QSpinBox()

属性相关

  1. QString cleanText() const
  2. int displayIntegerBase() const
  3. void setDisplayIntegerBase(int base)
  4. int maximum() const
  5. void setMaximum(int max)
  6. int minimum() const
  7. void setMinimum(int min)
  8. QString prefix() const
  9. void setPrefix(const QString &prefix)
  10. int singleStep() const
  11. void setSingleStep(int val)
  12. QAbstractSpinBox::StepType stepType() const
  13. void setStepType(QAbstractSpinBox::StepType stepType)
  14. QString suffix() const
  15. void setSuffix(const QString &suffix)
  16. int value() const

特殊

  1. void setRange(int minimum, int maximum)

公共槽

  1. void setValue(int val)

信号

  1. void textChanged(const QString &text)
  2. void valueChanged(int i)

受保护的函数

  1. virtual QString textFromValue(int value) const
  2. virtual int valueFromText(const QString &text) const

重写的受保护的函数

  1. virtual bool event(QEvent *event) override
  2. virtual void fixup(QString &input) const override
  3. virtual QValidator::State validate(QString &text, int &pos) const override
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值