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~

相关推荐
hjjdebug38 分钟前
constexpr 关键字的意义(入门)
c++·constexpr
虾球xz2 小时前
游戏引擎学习第282天:Z轴移动与摄像机运动
c++·学习·游戏引擎
.小墨迹2 小时前
Apollo学习——planning模块(3)之planning_base
linux·开发语言·c++·学习·自动驾驶
龙湾开发2 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(一)过程式凹凸贴图
c++·笔记·学习·3d·图形渲染
德亦周2 小时前
如何在Mac电脑上的VScode去配置C/C++环境
c++·vscode·macos
XiaoyaoCarter3 小时前
每日一道leetcode(新学数据结构版)
数据结构·c++·算法·leetcode·职场和发展·哈希算法·前缀树
八月的雨季 最後的冰吻3 小时前
SIP协议栈--osip源码梳理
linux·服务器·网络·c++·网络协议
charlie1145141913 小时前
基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器——MuPDF Adapter文档
arm开发·qt·学习·pdf·教程·设计·qt6
fancy1661664 小时前
搜索二维矩阵 II
c++·算法·矩阵