QDoubleSpinBox 类
QDoubleSpinBox 类提供了一个可以接受双精度浮点数的滚动框小部件。 更多...
头文件 | #include <QDoubleSpinBox> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承了 | QAbstractSpinBox |
属性
|
公共函数
QDoubleSpinBox(QWidget *parent = nullptr) | |
virtual | ~QDoubleSpinBox() |
QString | cleanText() const |
int | decimals() const |
double | maximum() const |
double | minimum() const |
QString | prefix() const |
void | setDecimals(int prec) |
void | setMaximum(double max) |
void | setMinimum(double min) |
void | setPrefix(const QString &prefix) |
void | setRange(double minimum, double maximum) |
void | setSingleStep(double val) |
void | setStepType(QAbstractSpinBox::StepType stepType) |
void | setSuffix(const QString &suffix) |
double | singleStep() const |
QAbstractSpinBox::StepType | stepType() const |
QString | suffix() const |
virtual QString | textFromValue(double value) const |
double | value() const |
virtual double | valueFromText(const QString &text) const |
重写公共函数
virtual void | fixup(QString &input) const override |
virtual QValidator::State | validate(QString &text, int &pos) const override |
公共槽
void | setValue(double val) |
信号
void | textChanged(const QString &text) |
void | valueChanged(double d) |
详细信息
QDoubleSpinBox 允许用户通过点击上下按钮,或按键盘上的向上和向下键来增加或减少当前显示的值,或者手动输入值。可以扩展到使用不同的字符串通过validate(),textFromValue() 和 valueFromText() 来支持double值。
每次值改变时,QDoubleSpinBox 都会发出 valueChanged() 和 textChanged() 信号,前者提供一个double值,而后者提供一个 QString。 textChanged() 信号提供了带有 prefix() 和 suffix() 的值。可以通过 value() 获取当前值,并通过 setValue() 设置值。
注意:QDoubleSpinBox 会将数字四舍五入到当前精度,以进行显示。在一个设置了小数位为 2 的 QDoubleSpinBox 中,调用 setValue(2.555) 将导致 value() 返回 2.56。
点击上下按钮或使用键盘加速键的向上和向下箭头将以 singleStep() 的大小递增值或递减当前值。如果您想改变这种行为,可以重新实现虚拟函数 stepBy()。最小值、最大值和步长可以通过构造函数之一来设置,以后可以使用 setMinimum(),setMaximum() 和 setSingleStep() 进行更改。自旋框具有默认的 2 位小数精度,但可以使用 setDecimals() 进行更改。
大多数旋转框是定向的,但 QDoubleSpinBox 也可以作为环形旋转框运行,即如果范围是 0.0-99.9,并且当前值是 99.9,当选定 "up" 时,如果 wrapping() 设置为 true,则将给出 0。如果您想实现环形行为,请使用 setWrapping()。
显示的值可以前缀和后缀任意字符串,例如货币或计量单位。有关信息,请参阅 setPrefix() 和 setSuffix()。自旋框中的文本可以通过 text()(包括任何 prefix() 和 suffix())检索,或者通过 cleanText()(它没有 prefix(),没有 suffix() 和首尾空格)。
经常需要提供在数值范围的数值选择之外的特定(通常是默认)选择。有关 QDoubleSpinBox 如何操作的信息,请参阅 setSpecialValueText()。
注意:除了可能的文本前缀和后缀之外,QDoubleSpinBox 显示的值限制为 18 个字符。此限制用于保持大数值的有效显示。
另请参阅 QSpinBox、QDateTimeEdit、QSlider 和 微步示例。
属性文档
[只读]
cleanText : const QString
此属性持有所选微步的文本,不包括任何前缀、后缀、前导或尾随空格。
访问函数
QString | cleanText() const |
另请参阅 text、QDoubleSpinBox::prefix 和 QDoubleSpinBox::suffix。
decimals : int
此属性保存微步的精度,即小数位数。
设置微步用于显示和解释双精度值的小数位数。
警告:由于双精度类型的限制,decimals 的最大值为 DBL_MAX_10_EXP + DBL_DIG(即 323)。
注意:改变此属性可能会导致最大值、最小值和值发生变化。
访问函数
int | decimals() const |
void | setDecimals(int prec) |
maximum : double
此特性存储微步的最大值
在设置此特性时,如果需要调整minimum以确保范围处于有效状态。
默认最大值是 99.99。
注意:最大值将四舍五入以匹配小数特性。
访问函数
double | maximum() const |
void | setMaximum(double max) |
minimum : double
此特性存储微步的最小值
设置此特性时,需要根据需要调整maximum以确保范围有效。
默认最小值是 0.0。
注意:最小值将四舍五入以匹配小数特性。
访问函数
double | minimum() const |
void | setMinimum(double min) |
另请参阅 decimals、setRange() 和 specialValueText。
prefix : QString
此特性存储微步的前缀
前缀附加到显示值的起始位置。典型的用法是显示测量单位或货币符号。例如
spinbox->setPrefix("$");
要关闭前缀显示,将此特性设置为空字符串。默认情况下没有前缀。当 value() == minimum() 并设置specialValueText() 时,不显示前缀。
如果没有设置前缀,则前缀()返回一个空字符串。
访问函数
QString | prefix() const |
void | setPrefix(const QString &prefix) |
另请参阅 suffix、setSuffix、specialValueText 和 setSpecialValueText。
singleStep : double
此特性存储步长值
当用户使用箭头键更改微调框的值时,该值将以singleStep
的数量递增或递减。默认值为1.0。将singleStep
的值设置为小于0不会产生任何作用。
访问函数
double | singleStep () const |
void | setSingleStep (double val) |
stepType : StepType
此属性持有步进类型。
步进类型可以是单步或自适应小数步。
访问函数
QAbstractSpinBox::StepType | stepType () const |
void | setStepType(QAbstractSpinBox::StepType stepType) |
suffix : QString
此属性保持微调框的后缀。
后缀将附加到显示值的末尾。典型用途是显示度量单位或货币符号。例如
spinbox->setSuffix(" km");
要关闭后缀显示,请将此属性设置为空字符串。默认情况下没有后缀。如果设置了specialValueText(),则不会显示minimum()的后缀。
如果没有设置后缀,suffix()
将返回一个空字符串。
访问函数
QString | suffix () const |
void | setSuffix (const QString &suffix) |
另请参阅 prefix()、setPrefix()、specialValueText() 和 setSpecialValueText。
value : double
此属性持有微调框的值。
当新值与旧值不同时,setValue()
将发出valueChanged
信号。值属性具有第二个通知信号,它包含微调框的前缀和后缀。
注意:该值将被四舍五入,以便能够使用当前的十进制设置进行显示。
访问函数
double | value () const |
void | setValue (double val) |
通知信号
void | valueChanged(double d) |
另请参阅 decimals。
成员函数文档
[显式]
QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)
构建一个具有最小值0.0和最大值99.99的微调框,步值1.0和精度2位十进制的微调框。初始值设置为0.00。微调框具有给定的父元素。
另请参阅 setMinimum()、setMaximum() 和 setSingleStep()。
[虚拟 noexcept]
QDoubleSpinBox::~QDoubleSpinBox()
析构器。
[覆盖虚拟]
void QDoubleSpinBox::fixup(QString &input) const
重新实现:QAbstractSpinBox::fixup(QString & input) const。
void QDoubleSpinBox::setRange(double minimum, double maximum)
单次函数调用即可设置 最小 和 最大 值的便利函数。
注意:最大值和最小值将被四舍五入以匹配小数属性。
setRange(minimum, maximum);
等价于
setMinimum(minimum); setMaximum(maximum);
void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)
为滚动框设置步进类型为 stepType,即单步或自适应小数步进。
自适应小数步进意味着步进大小将不断调整到当前 值 以下的十的幂。因此,当值为 1100 时,步进设置为 100,因此上一步增加使其变为 1200。对于 1200 ,上一步将其增加到 1300。对于负值,从 -1100 减少到 -1200。
这也适用于任何小数值,0.041 通过一次步进增加到 0.042。
考虑步进方向以处理边缘情况,因此从 100 减少到 99 而不是 90。因此,上一步后跟下一步或反之亦然始终落在起始值;99 -> 100 -> 99。
设置此选项将导致滚动框忽略 singleStep 的值,尽管它被保留下来,以便在以后关闭自适应小数步进时 singleStep 生效。
注意:属性 stepType 的设置函数。
另见stepType().
[信号]
void QDoubleSpinBox::textChanged(const QString &text)
每当滚动框的文本发生变化时,都会发出此信号。新的文本在 text 中传递,附带 prefix() 和 suffix().
[虚拟]
QString QDoubleSpinBox::textFromValue(double value) const
此虚拟函数由滚动框用来显示给定的 值。默认实现返回一个包含 value 的字符串,使用 QWidget::locale().toString(value, u'f'
, decimals()) 并在未设置 setGroupSeparatorShown() 时删除千位分隔符。重写可以实现任何内容。
注意:QDoubleSpinBox 对于 specialValueText() 不调用此函数,且不应在返回值中包含 prefix() 或 suffix().
如果您重写此函数,您可能还需要重写 valueFromText().
另见valueFromText() 和 QLocale::groupSeparator().
[重载虚拟]
QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const
重写:QAbstractSpinBox::validate(QString &input, int &pos) const.
[信号]
void QDoubleSpinBox::valueChanged(double d)
每当微调框的值改变时,都会发射此信号。新值通过d传递。
注意:属性value的通知信号。
[虚函数]
double QDoubleSpinBox::valueFromText(const QString &text) const
此虚函数由微调框在需要将用户输入的文本作为值进行解释时使用。
需要以非数字方式显示微调框值的子类需要重写此函数。
注意:QDoubleSpinBox单独处理specialValueText(),此函数只涉及其他值。
另请参阅 textFromValue() 和 validate()。
© 2024 Qt公司。此处包含的文档贡献的版权属于各自的所有者。所提供的文档受GNU Free Documentation License版本1.3的条款许可,由自由软件基金会发布。Qt及其相关标志是芬兰和/或在其他国家的Qt公司的商标。所有其他商标均为各自所有者的财产。