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

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

http://www.kler.cn/a/104430.html

相关文章:

  • 微信小程序在线预览PDF文件
  • 原来服务器这么有用-Docker安装
  • 【前段基础入门之】=>CSS3新增渐变颜色属性
  • Cisco IOS XE Web UI 命令执行漏洞
  • ICMP权限许可和访问控制漏洞处理(CVE-1999-0524)
  • 自动驾驶的未来展望和挑战
  • 微服务-服务拆分
  • 【Win11】系统重装教程(最新最详细)
  • 装了mac os 14.0 sonoma 在腾讯会议投屏时候,无法设置麦克风权限问题
  • vue项目中将html转为pdf并下载
  • Redis常见问题的解决方案(缓存穿透/缓存击穿/缓存雪崩/数据库缓存数据不一致)
  • 2、QtCharts QGraphicsScene绘制折线图
  • ORACLE数据库查询所有索引的sql语句
  • 工厂干洗店洗鞋店系统,校园洗护小程序来了
  • JS中面向对象的程序设计
  • springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
  • Oracle查询表空间使用情况
  • 三维模型相机视角投影详细介绍及python程序解析
  • ruoyi-nbcio版本从RuoYi-Flowable-Plus迁移过程记录
  • Lua与C++交互