基本Widgets(17):【类】QDoubleSpinBox [官翻]

QDoubleSpinBox Class

QDoubleSpinBox类提供了一个接受双精度浮点数的spinbox小部件。

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

详细说明

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

每次值更改时,QDoubleSpinBox都会发出valueChanged() 和textChanged() 信号,前者提供一个double,后者提供一个QString。textChanged() 信号提供带有prefix() 和suffix() 的值。当前值可以用value() 获取,也可以用setValue() 设置。

注意:QDoubleSpinBox将对数字进行四舍五入,以便以当前精度显示。在小数设置为2的QDoubleSpinBox中,调用setValue(2.555)将导致value() 返回2.56。

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

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

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

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

注意:除了最终的前缀和后缀内容外,QDoubleSpinBox的显示值限制为18个字符。此限制用于使double数字调整框即使具有非常大的值也可用。

属性

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

    Access functions:

    • QString cleanText() const
  2. decimals: int 此属性保留数字调整框的精度(以小数为单位)

    设置微调框用于显示和解释双精度的小数位数。
    警告:由于double类型的限制,小数的最大值为 DBL_MAX_10_EXP + DBL_DIG (ie. 323) 。
    注意:最大值、最小值和值可能会因更改此属性而更改。

    Access functions:

    • int decimals() const
    1. void setDecimals(int prec)
  3. maximum: double 最大值

    Access functions:

    • double maximum() const
    1. void setMaximum(double max)
  4. minimum: double 最小值

    Access functions:

    • double minimum() const
    1. void setMinimum(double min)
  5. prefix: QString 数字调整框的前缀

    Access functions:

    • QString prefix() const
    1. void setPrefix(const QString &prefix)
  6. singleStep: double 步长值

    Access functions:

    • double singleStep() const
    • void setSingleStep(double val)
  7. stepType: StepType 步长类型

    步长类型可以是单步或自适应十进制步长。

    Access functions:

    • QAbstractSpinBox::StepType stepType() const
    • void setStepType(QAbstractSpinBox::StepType stepType)
  8. suffix: QString 数字调整框的后缀

    Access functions:

    • QString suffix() const
    1. void setSuffix(const QString &suffix)
  9. value: double 数字调整框的值

    如果新值与旧值不同,setValue() 将发出valueChanged() 。value属性有第二个通知信号,其中包括数字调整框的前缀和后缀。
    注:该值将四舍五入,因此可以使用当前的小数设置进行显示。

    Access functions:

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

    Notifier signal:

    • void valueChanged(double d)

公共函数

构造和析构

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

属性相关

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

特殊

  1. void setRange(double minimum, double maximum) 设置范围

  2. virtual QString textFromValue(double value) const
    每当需要显示给定值时,数字调整框就会使用此虚拟函数。

    默认实现返回一个字符串,其中包含使用QWidget::locale() .toString(value, QLatin1Char(‘f’), decimals()) 打印的值,并将删除千位分隔符,除非设置了setGroupSeparatorShown() 。重新执行可能会返回任何内容。

    注意:QDoubleSpinBox不会为specialValueText() 调用此函数,并且返回值中不应包含prefix() 和suffix() 。

    如果重新实现此功能,可能还需要重新实现valueFromText() 。

  3. virtual double valueFromText(const QString &text) const

    每当数字调整框需要将用户输入的文本解释为值时,就会使用此虚拟函数。

    需要以非数字方式显示数字调整框值的子类需要重新实现此函数。
    注意:QDoubleSpinBox单独处理specialValueText() ;此函数只与其他值有关。

重写的公共函数

  1. virtual void fixup(QString &input) const override
  2. virtual QValidator::State validate(QString &text, int &pos) const override

公共槽

  1. void setValue(double val) 属性相关

信号

  1. void textChanged(const QString &text)
  2. void valueChanged(double d)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值