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

网友投稿 1729 2022-05-28

描述

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); }

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Redis持久化
下一篇:GaussDB(DWS)存储系列之行存表
相关文章