QSpinBox数值微调框组件笔记
数值输入适用于需要用户输入整数值的场景如设置计算参数、调整数量等。调整参数在需要进行微小调整的地方提供直观的增减按钮。限制输入范围当需要确保用户输入在一定范围内时可以设置参数的最大值和最小值只读展示可以用于只读展示某个数值不允许用户修改。以下是QSpinBox类的一些常用方法API说明并概述成表格方法API描 述QSpinBox(QWidget *parent nullptr)构造函数创建一个整数微调框。int value() const获取当前微调框中的整数值。void setValue(int value)设置微调框的整数值。int minimum() const获取微调框的最小值。void setMinimum(int min)设置微调框的最小值。int maximum() const获取微调框的最大值。void setMaximum(int max)设置微调框的最大值。int singleStep() const获取单步步进值即微调框在每次增减操作时的变化量。void setSingleStep(int step)设置单步步进值。int prefix() const获取前缀显示在值之前的文本。void setPrefix(const QString prefix)设置前缀。int suffix() const获取后缀显示在值之后的文本。QString cleanText() const获取文本表示的干净值即不包含前缀和后缀的纯文本值。bool wrapping() const检查微调框是否启用了循环即在达到最大或最小值时是否绕回。void setWrapping(bool on)启用或禁用微调框的循环。void stepUp()将微调框的值增加一个单步步进值void stepDown()将微调框的值减少一个单步步进值。void setAccelerated(bool on)启用或禁用加速即按住上下箭头时值的变化速度是否逐渐加快。bool isAccelerated() const检查是否启用了加速。void setReadOnly(bool ro)设置微调框为只读模式禁止用户编辑值。bool isReadOnly() const检查微调框是否为只读模式。void setAlignment(Qt::Alignment align)设置微调框中文本的对齐方式。Qt::Alignment alignment() const获取微调框中文本的对齐方式。void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)设置增减按钮的显示方式。QAbstractSpinBox::ButtonSymbols buttonSymbols() const获取增减按钮的显示方式。这些方法涵盖了QSpinBox类中一些常用的设置和获取整数微调框属性的功能。其信号部分信号声明信号说明void textChanged(const QString text)微调框的文本发生改变时会触发参数QString带有前缀和后缀void valueChanged(int i)微调框的⽂本发⽣改变时会触发参数 int表示当前的数值接下来将用一个简单的案例展示如何使用 QSpinBox组件该组件有两个版本QSpinBox用于展示单精度浮点数而QDoubleSpinBox()则可以展示精度更高的数值需要注意的是该组件有两个特殊参数当使用setPrefix() 时可以指定在前方加入特殊符号而使用 setSuffix() 时则可以在后方追加特殊符号我们就可以后方追加为例。以下是一个使用 QSpinBox 的 C Qt 示例展示了如何创建控件、设置属性并连接信号#include QApplication #include QWidget #include QSpinBox #include QVBoxLayout #include QDebug class MainWindow : public QWidget { Q_OBJECT public: MainWindow() { QSpinBox *spinBox new QSpinBox(this); spinBox-setRange(0, 100); // 设置范围 0-100 spinBox-setValue(10); // 设置初始值 spinBox-setSingleStep(5); // 设置步长为 5 // 连接值改变信号到槽函数 connect(spinBox, QOverloadint::of(QSpinBox::valueChanged), this, MainWindow::onValueChanged); QVBoxLayout *layout new QVBoxLayout(this); layout-addWidget(spinBox); } public slots: void onValueChanged(int value) { qDebug() Spin box value changed to: value; } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }