当前位置: 首页 > news >正文

Qt之设置QLineEdit只能输入浮点数

Qt提供了QDoubleValidator来进行浮点数校验,但是它同样存在限定范围无效的问题,详见:Qt之彻底解决QSpinBox限定范围无效的问题 。因此我们要子类化QDoubleValidator,并重写其中的validate方法,最后调用QLineEdit的setValidator方法,并将这个子类当做参数传入。
QSpinBox和QDoubleSpinBox有个特性,如果输入的是非法值,当它们失去焦点时,编辑框中会恢复到输入之前的值。这里我们也要对QLineEdit实现这个特性。

一.效果

假设取值范围为-9~9,如果输入为空、"-"、或“-0”,当QLineEdit失去焦点时,编辑框中的值恢复为输入之前的值。当输入为的“数字+点”时,保留数字,比如-4.为-4;4.为4

二.实现

QHDoubleValidator.h

#ifndef QHDOUBLEVALIDATOR_H
#define QHDOUBLEVALIDATOR_H#include <QDoubleValidator>
class QHDoubleValidator : public QDoubleValidator
{
public:explicit QHDoubl

相关文章:

  • matlab创建矩阵、理解三维矩阵
  • C语言中realloc函数解析
  • 使用Jenkins触发gitlab的webhook
  • C# | Chaikin算法 —— 计算折线对应的平滑曲线坐标点
  • 嵌入式项目电灯
  • 集合总结(Java)
  • 657. 机器人能否返回原点
  • 面试算法43:在完全二叉树中添加节点
  • 【Python机器学习】零基础掌握permutation_importance检验、检查
  • Dubbo 路由及负载均衡性能优化
  • [AutoSAR系列] 1.3 AutoSar 架构
  • 垃圾回收系统小程序
  • Linux—vmstat命令详解
  • JAVA实现智能停车场管理系统 开源
  • Zookeeper Watcher机制--数据变更通知
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [LeetCode] Wiggle Sort
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Apache Zeppelin在Apache Trafodion上的可视化
  • C++类中的特殊成员函数
  • conda常用的命令
  • ES6 学习笔记(一)let,const和解构赋值
  • ES6核心特性
  • Gradle 5.0 正式版发布
  • JS学习笔记——闭包
  • Linux gpio口使用方法
  • October CMS - 快速入门 9 Images And Galleries
  • React+TypeScript入门
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 算法系列——算法入门之递归分而治之思想的实现
  • 算法之不定期更新(一)(2018-04-12)
  • 新手搭建网站的主要流程
  • 智能合约Solidity教程-事件和日志(一)
  • const的用法,特别是用在函数前面与后面的区别
  • mysql面试题分组并合并列
  • 说说我为什么看好Spring Cloud Alibaba
  • (06)金属布线——为半导体注入生命的连接
  • (6)STL算法之转换
  • (HAL库版)freeRTOS移植STMF103
  • (层次遍历)104. 二叉树的最大深度
  • (七)c52学习之旅-中断
  • (区间dp) (经典例题) 石子合并
  • (三)mysql_MYSQL(三)
  • (算法)求1到1亿间的质数或素数
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转) Face-Resources
  • (转)JAVA中的堆栈
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net Core 中间件验签
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃