Qt c++ 如何判断文本框为有效数字字符,请给出实例代码?
时间: 2024-10-21 10:12:46 浏览: 25
在Qt C++中,你可以使用`QValidator`类及其派生类来检查文本框输入的内容是否为有效的数字。`QDoubleValidator`或`QIntValidator`可以用于处理整数和浮点数。下面是一个简单的例子,展示如何创建一个双精度数字验证器并应用到QLineEdit上:
```cpp
#include <QApplication>
#include <QWidget>
#include <QLineEdit>
#include <QDoubleValidator>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建窗口
QWidget window;
window.setWindowTitle("Number Validation");
// 创建一个线编辑框
QLineEdit lineEdit;
lineEdit.setPlaceholderText("请输入数字");
// 创建一个双精度数字验证器
QDoubleValidator doubleValidator(0, 1e6, 2); // 最小值, 最大值, 小数位数
lineEdit.setValidator(&doubleValidator);
// 设置当输入不符合规则时显示提示信息
QObject::connect(lineEdit, &QLineEdit::textChanged, &window, [this](const QString &text) {
if (!doubleValidator.validate(text.toStdString(), 0)) { // 验证输入
QMessageBox::warning(&window, "错误", tr("输入无效,请输入一个数字."));
}
});
// 显示窗口
window.show();
return app.exec();
}
```
在这个例子中,`validate()`函数会检查输入是否符合设定的范围和小数位数。如果输入无效,程序会在一个小窗口中显示错误消息。
阅读全文