Qt入门系列开发教程基础控件篇QSpinBox旋转框

Posted 鱼酱2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程基础控件篇QSpinBox旋转框相关的知识,希望对你有一定的参考价值。

描述

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,则单击“向上”将给出 0。如果您想要循环行为,请使用 setWrapping()。
显示的值可以添加任意字符串,例如货币或计量单位。请参阅 setPrefix() 和 setSuffix()。旋转框中的文本使用 text()(包括任何 prefix() 和 suffix())或 cleanText()(没有 prefix()、suffix() 并且没有前导或尾随空格)检索。
除了数值范围之外,通常还需要给用户一个特殊的(通常是默认的)选择。有关如何使用 QSpinBox 执行此操作,请参阅 setSpecialValueText()。

如果使用 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);
 

API

//清除文本
QString cleanText() const
//此属性保存用于显示旋转框值的基数
 int displayIntegerBase() const
//获取最大值
 int maximum() const
 //获取最小值
 int minimum() const
 //获取前缀
 QString prefix() const
 //设置进制数
 void setDisplayIntegerBase(int base)
 //设置最大值
 void setMaximum(int max)
 //设置最小值
 void setMinimum(int min)
 //设置后缀
 void setPrefix(const QString &prefix)
 //设置范围
 void setRange(int minimum, int maximum)
 //设置步长
 void setSingleStep(int val)
//设置 单步或自适应小数步。
 void setStepType(QAbstractSpinBox::StepType stepType)
 //设置前缀
 void setSuffix(const QString &suffix)
 //获取步长
 int singleStep() const
 //获取步长类型
 QAbstractSpinBox::StepType stepType() const
//获取前缀
 QString suffix() const
 //获取值
 int value() const

以上是关于Qt入门系列开发教程基础控件篇QSpinBox旋转框的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程基础控件篇QLineEdit输入框

Qt入门系列开发教程基础控件篇框架QFrame

Qt入门系列开发教程基础控件篇小部件(所有控件的基类QWidget)

Qt入门系列开发教程基础控件篇QProgressBar进度条

Qt入门系列开发教程基础控件篇QCalendarWidget日历控件

Qt入门系列开发教程基础控件篇单选按钮QRadioButton