在Qt里如何把全局变量始终不小于0
时间: 2024-02-20 17:58:46 浏览: 67
你可以使用Qt的信号槽机制,将全局变量与一个QSpinBox控件绑定。在SpinBox的valueChanged信号被触发时,检查SpinBox的值是否小于0,如果是,则将全局变量的值设为0,否则将全局变量的值设为SpinBox的值。这样就能保证全局变量始终不小于0了。
下面是一个示例代码:
```cpp
// 全局变量
int globalVar = 0;
// 在某个类里创建一个QSpinBox控件
QSpinBox* spinBox = new QSpinBox(parent);
// 将SpinBox的valueChanged信号与一个槽函数绑定
connect(spinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, [=](int value) {
if(value < 0) {
globalVar = 0;
spinBox->setValue(0); // 将SpinBox的值设为0
} else {
globalVar = value;
}
});
```
这样,无论是在界面上手动输入还是通过代码修改SpinBox的值,都能保证全局变量始终不小于0。
阅读全文