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

Qt QIntValidator详解

一、介绍

QIntValidator是Qt框架中用于验证整数输入的验证器类。它可以限制用户输入的整数范围,确保输入的整数在指定的范围内。通过QIntValidator,可以轻松地实现整数输入的有效性和范围限制。

二、 常用方法

  • QIntValidator(QObject *parent = Q_NULLPTR)

构造一个整数验证器。

  • QIntValidator(int minimum, int maximum, QObject *parent = Q_NULLPTR)

构造一个整数验证器,并指定下限和上限。

  • bottom() const

返回当前验证器的最小值。

  • setBottom(int)

设置整数的最小值。

  • setRange(int bottom, int top)

设置验证器的整数范围。

  • setTop(int)

设置整数的最大值。

  • top() const

返回当前验证器的最大值。

三、验证机制

QIntValidator根据其设置的整数范围,对输入进行验证,并返回以下状态:

  • QValidator::Acceptable:输入有效。
  • QValidator::Intermediate:输入部分有效,尚不完整
  • QValidator::Invalid:输入无效。

四、DEMO

// 创建一个QLineEdit对象作为输入框
QLineEdit *lineEdit = new QLineEdit;// 创建一个QIntValidator对象,并设置输入范围为10到100
QIntValidator *validator = new QIntValidator(10, 100, lineEdit);// 将验证器设置到输入框上
lineEdit->setValidator(validator);// 显示输入框
lineEdit->show();
QString str;
int pos = 0;
QIntValidator v(100, 900, this);str = "1";
v.validate(str, pos);     // returns Intermediate
str = "012";
v.validate(str, pos);     // returns Intermediatestr = "123";
v.validate(str, pos);     // returns Acceptable
str = "678";
v.validate(str, pos);     // returns Acceptablestr = "999";
v.validate(str, pos);    // returns Intermediatestr = "1234";
v.validate(str, pos);     // returns Invalid
str = "-123";
v.validate(str, pos);     // returns Invalid
str = "abc";
v.validate(str, pos);     // returns Invalid
str = "12cm";
v.validate(str, pos);     // returns Invalid

qq群交流:698593923

觉得有帮助的话,打赏一下呗。。

           

相关文章:

  • 【以图搜图代码实现2】--faiss工具实现犬类以图搜图
  • 2024/9/30 英语每日一段
  • GORM CRUD
  • Flux【真人模型】:高p高糊反向真实质感!网图风格的Lora模型,超逼真的AI美女大模型!
  • C#测试调用Ghostscript.NET浏览PDF文件
  • 用户体验测试——什么是用户体验?
  • Axure9破解
  • iOS实现解压文件
  • 【C++篇】启航——初识C++(下篇)
  • 如何从huggingface下载
  • .NetCore 8 SwaggerGen 显示接口注析
  • SqlSugar使用
  • [大语言模型-论文精读] 大语言模型是单样本URL分类器和解释器
  • 828华为云征文|针对Flexus X实例云服务器的CPU和内存性能测评
  • PE节表中是否存在misc.VirtualSize 比SizeofRawData还要大的情况
  • 分享的文章《人生如棋》
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 5、React组件事件详解
  • EOS是什么
  • HTML中设置input等文本框为不可操作
  • Linux各目录及每个目录的详细介绍
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 给新手的新浪微博 SDK 集成教程【一】
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 区块链将重新定义世界
  • -- 数据结构 顺序表 --Java
  • 学习JavaScript数据结构与算法 — 树
  • 一个项目push到多个远程Git仓库
  • 与 ConTeXt MkIV 官方文档的接驳
  • 智能网联汽车信息安全
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (算法)硬币问题
  • (一)Docker基本介绍
  • (一)认识微服务
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)四层和七层负载均衡的区别
  • .cn根服务器被攻击之后
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET开源、简单、实用的数据库文档生成工具
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET周刊【7月第4期 2024-07-28】
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka