QLineEdit 控件在设置了 QDoubleValidator 之后无法正确输入小数

问题

今儿有个需求要限制一下QLineEdit 控件的输入,使其只能输入数字(包括浮点数),方法是:设置 QLineEdit 的输入验证器为 QIntValidatorQDoubleValidator 来限制输入为整数或浮点数。

代码如下:

cpp 复制代码
#include <QLineEdit>  
#include <QDoubleValidator>   
  
// 在窗口或控件的初始化函数中  
QDoubleValidator *validator = new QDoubleValidator(this);  
validator->setNotation(QDoubleValidator::StandardNotation);  
validator->setRange(0.0, 100.0); // 设置允许的范围,这里假设是 0 到 100  
  
this->ui->lineEdit1->setValidator(validator);  
this->ui->lineEdit2->setValidator(validator);  

运行发现问题,QLineEdit只能输入数字,在输入小数点后,不能输入小数位。

解决方法

改了个写法,代码如下:

cpp 复制代码
 // 限制输入为浮点数
    QDoubleValidator *validator = new QDoubleValidator(0.0000, 100.0000, 4, this);  // 限制范围为 0.00 到 100.00,保留 4 位小数
    validator->setNotation(QDoubleValidator::StandardNotation);
    this->ui->lineEdit1->setValidator(validator);
    this->ui->lineEdit2->setValidator(validator);

一切ok~

相关推荐
优雅的潮叭5 小时前
c++ 学习笔记之 chrono库
c++·笔记·学习
星火开发设计6 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
月挽清风6 小时前
代码随想录第七天:
数据结构·c++·算法
点云SLAM7 小时前
C++内存泄漏检测之Windows 专用工具(CRT Debug、Dr.Memory)和Linux 专业工具(ASan 、heaptrack)
linux·c++·windows·asan·dr.memory·c++内存泄漏检测·c++内存管理
浅念-7 小时前
C语言小知识——指针(3)
c语言·开发语言·c++·经验分享·笔记·学习·算法
少控科技9 小时前
QT高阶日记01
开发语言·qt
无限进步_9 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio
C+-C资深大佬10 小时前
C++ 数据类型转换是如何实现的?
开发语言·c++·算法
木千10 小时前
Qt全屏显示时自定义任务栏
开发语言·qt
习惯就好zz10 小时前
[实战笔记] 从 Qt 5.12.9 跨越到 Qt 6.x 完美迁移指南 (Windows + VS)
windows·qt·msvc·qt5·qt6·迁移