`QSpinBox`和`QDoubleSpinBox`
时间: 2023-11-20 16:58:07 浏览: 105
`QSpinBox`和`QDoubleSpinBox`都是Qt框架中的数字输入框组件,用于接收用户输入的数字。其中,`QSpinBox`只能输入整数,而`QDoubleSpinBox`可以输入浮点数。
`QSpinBox`和`QDoubleSpinBox`的常用属性和方法包括:
- `setRange(int minimum, int maximum)`:设置输入范围。
- `setValue(int value)`或`setValue(double value)`:设置初始值。
- `setSingleStep(int step)`或`setSingleStep(double step)`:设置步长。
- `setPrefix(const QString &prefix)`和`setSuffix(const QString &suffix)`:设置前缀和后缀。
- `setWrapping(bool on)`:设置是否循环输入。
- `setReadOnly(bool enable)`:设置是否只读。
- `value()`:获取当前输入的值。
下面是一个使用`QSpinBox`和`QDoubleSpinBox`的例子:
```cpp
// 创建一个QSpinBox和一个QDoubleSpinBox
QSpinBox *pSpinBox = new QSpinBox(this);QDoubleSpinBox *pDoubleSpinBox = new QDoubleSpinBox(this);
// 设置QSpinBox的属性
pSpinBox->setRange(0, 100);pSpinBox->setSingleStep(5);
pSpinBox->setValue(20);
// 设置QDoubleSpinBox的属性
pDoubleSpinBox->setRange(0, 100);
pDoubleSpinBox->setSingleStep(0.1);
pDoubleSpinBox->setDecimals(2);
pDoubleSpinBox->setValue(20.0);
// 连接valueChanged信号
connect(pSpinBox, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), [=](int value) {
qDebug() << "QSpinBox value changed:" << value;
});
connect(pDoubleSpinBox, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), [=](double value) {
qDebug() << "QDoubleSpinBox value changed:" << value;
});
```
阅读全文