QLineEdit 控制输入格式——正则表达式与输入掩码

【QT】 QLineEdit 只能输入字母或数字,输入格式约束(正则表达式) 1.只允许输入整型 ui->lineEdit->setValidator(new QIntValidator(ui->lineEdit)); 2.只允许输入数字 ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("[0-9]+$"))); 3.只能输入字母和数字 ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9 阅读详情

  在实际应用中,我们常常需要在界面上控制用户的输入行为,以此来简化数据的处理。在 Qt 中,我们可以利用正则表达式和输入掩码来达到这种效果,例如 IP 地址的输入。
  首先,构建正则表达式,并通过 QLineEdit 的 setValidator 函数进行输入校验设置,从而控制输入行为。部分代码如下:

QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");

QRegExpValidator *pReg = new QRegExpValidator(rx, this);

ipLineEdit->setValidator(pReg);
maskLineEdit->setValidator(pReg);
gatewayLineEdit->setValidator(pReg);
dnsLineEdit->setValidator(pReg);

  可以看到,这里使用 QRegExpValidator 类来检查字符串是否符合正则表达式。这里对上面的正则表达式进行简单说明,更详细说明请查阅相关资料。

  • \d:匹配一个数字,等同于[0-9]
  • \.:匹配一个小数点
  • ?:表示重复前面内容的0次或1次
  • 2[0-4]\\d:涵盖了200~249之间的值
  • 25[0-5]:涵盖了250~255之间的值
  • [01]?\\d\\d?:涵盖了0~199之间的值

然后通过 setInputMask 函数设置输入掩码。部分代码如下:

ipLineEdit->setInputMask("000.000.000.000;0");
maskLineEdit->setInputMask("000.000.000.000;0");
gatewayLineEdit->setInputMask("000.000.000.000;0");
dnsLineEdit->setInputMask("000.000.000.000;0");

  注意:这里的”000.000.000.000;0“,只有加上 ;0 ,才使得正则表达式和输入掩码同时生效。(可能是我还没发现更好的方法,如果你有更好的方法,请务必告诉我。)
  效果如下:

这里写图片描述

  另外,如果需要获取网络配置信息,可以调用 getifaddrs() 这个接口,它可以查找到系统所有的网络接口的信息,包括以太网卡接口和回环接口等。这里给出一个应用示例:

// returns IP address in network byte order
static unsigned int GetLocalIP(char *ifr_name)
{
   struct ifaddrs *pIfList;        // pointer to interfaces list
   struct ifaddrs *pIfInfo;        // pointer to interface info
   unsigned int Address = 0;
   int i;

   if (getifaddrs(&pIfList) != -1) 
    {
        pIfInfo = pIfList;
        while (pIfInfo != NULL)
        {
            if(pIfInfo->ifa_addr != NULL)
            {
                if ((pIfInfo->ifa_addr->sa_family == AF_INET) || (pIfInfo->ifa_addr->sa_family == AF_INET6)) 
                {
                    if (strcmp(pIfInfo->ifa_name, ifr_name) == 0)
                    {
                        Address = ((struct sockaddr_in *) pIfInfo->ifa_addr)->sin_addr.s_addr;
                        if (Address != 0)
                        {
                            break;
                        }
                    }
                }
            }
            pIfInfo = pIfInfo->ifa_next;
        }
        freeifaddrs(pIfList);
    }

    //showIpstring(Address);
    return Address;
}
QLineEdit输入限制的3种方式对比:inputMask vs validator vs 正则表达式 本文深入对比了QLineEdit输入限制的三种方式:inputMask、Validator和正则表达式,分析了各自的实现原理、性能表现和适用场景。通过实战案例和技术选型建议,帮助开发者在Qt表单开发中选择最适合的输入验证方案,提升数据质量和用户体验。 阅读详情

相关推荐

QT开发实战:QLineEdit输入限制全攻略(正则表达式+常见场景)

本文深入探讨了在QT开发中,如何利用QValidator和正则表达式为QLineEdit控件实现高效、精准的输入限制。文章从基础验证器原理讲起,重点解析了如何通过正则表达式实现“字母或数字”等常见场景的输入格式约束,并提供了IP地址、日期、浮点数等复杂格式的实战方案,旨在提升桌面应用的健壮性与用户体验。

weixin_29230805的博客 292

QT编程思想【C++,基于QT 6】

QT是基于C++的跨平台开发工具。QT6是QT目前的版本,增加了很多功能。 由于QT可用于开发跨平台桌面应用,尽管操作上基本一致,但某些API还是有一定差异的,所以本课程每一个案例都会同时在Windows、macOS和Linux三个系统上演示,这里的Linux使用的是Ubuntu Linux 20.04。其他版本的Ubuntu Linux以及其他Linux发行版大同小异。  本课程会对QT6涉及到的核心技术进行全面讲解,并会给出大量的实战案例供广大学员巩固学到的知识。 本课程的主要内容如下: 

QLineEdit 详解(C++)

摘要: QLineEdit 是 Qt 框架中的单行文本输入控件,支持文本设置、输入验证、样式定制等功能。本文详细解析其用法: 基础操作:创建实例、文本读写、只读模式、占位提示等; 输入模式:支持密码、明文等显示方式; 信号与槽:响应文本变化、回车事件等; 输入验证:内置整数、浮点数、正则表达式验证器,支持自定义逻辑; 扩展功能:上下文菜单定制与内置编辑操作; 样式定制:通过 QSS 调整边框、颜色、字体等外观属性。适用于表单、搜索框等交互场景。

2202_75382767的博客 1510

【QT】QLineEdit正则表达式

QLineEdit正则表达式

u013307195的博客 1492

QLabelQPushButton和QLineEdit

设置一个输入掩码。输入掩码是一种指定控件接受输入格式的方式,它有助于指导用户输入数据,并确保输入格式的正确性。:这个类用于创建键盘快捷键。你可以使用它来定义一个快捷键组合,并将其与特定的动作或命令关联。信号在文本框的文本被改变时发射,无论这种改变是由用户的交互引起的,还是由程序代码(如调用。信号仅在用户通过界面交互(如键盘输入)改变文本时发射,而不会在程序代码改变文本时发射。方法用于为 Qt 控件(如。

b1169909203的博客 1295

PyQt5常用控件之QLineEdit类

QLineEdit QLineEdit是一个单行文本编辑控件,可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。通过改变QLineEdit的 echoMode() ,可以设置其属性,比如以密码的形式输入。文本的长度可以由 maxLength() 限制,可以通过使用 validator() 或者 inputMask() 可以限制它只能输入数字。在对同一个QLineEdit的validator或者input mask进行转换时,最好先将它的validator或者input mask清.

CJW的博客 2595

QLineEdit文件名正则表达式

文件命名规范 不能包含 \/:*?"<>| QRegExp reg("^[^?v \ * | "" < > : /]{1,256}$"); ui->lineEdit->setValidator(new QRegExpValidator(reg, this)); 正则表达式学习网页: http://www.regexlab.com/zh/regref.htm

枫影竹韵的博客 1744

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战

本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。

weixin_28829903的博客 436

QLineEdit正则表达式

用于定义正则表达式。: 用于将正则表达式应用于。,确保输入符合规定的格式。: 将创建的验证器设置给。表示只允许输入数字。

m0_70445737的博客 789

Claude code-review 插件深度解析:AI 驱动的智能代码审查系统

Claude Code Review 插件深度解析:AI 驱动的智能代码审查系统 该插件通过多 Agent 并行工作方式自动审查 PR,采用置信度评分机制(80+分保留)过滤误报,确保高质量反馈。核心功能包括: 5个专业化 Agent 并行审查(规范合规性、bug检测、历史分析等) 8步工作流程:从资格检查到 GitHub 评论发布 创新性置信度评分系统(0-100分),严格过滤7类误报 结合 CLAUDE.md 规范和历史 PR 评论实现一致性审查 技术亮点: 多 Agent 架构(Haiku/Sonne

虚心若愚 2263

使用KITTI数据集测试不同算法的性能

该文章将使用同一个kitti数据集来测试不同算法的性能,目前已经测试的算法包括:LIO-SAM,FAST-LIO2,Point-LIO,Faster-LIO。

wwtx的博客 2586

Qt实战技巧:QLineEdit输入掩码在表单验证中的高效应用

本文深入探讨了Qt开发中QLineEdit输入掩码的高效应用,通过setInputMask方法实现表单输入的实时格式化和验证。文章详细解析了输入掩码的字符规则,并提供了电话号码、身份证、日期、IP地址及许可证密钥等常见场景的实战代码示例,帮助开发者提升数据准确性和用户体验,是Qt桌面应用表单验证的必备技巧。

s4t5u6v的博客 929

Shopee App加密算法逆向实战:从抓包到libshpssdk.so的深度解析

本文详细解析了Shopee App加密算法的逆向过程,从网络抓包发现加密参数入手,通过Frida动态Hook定位到Java层关键方法,并深入追踪至Native层的libshpssdk.so核心函数。文章结合实战演示了如何利用Unidbg模拟执行环境进行算法分析与验证,并探讨了核心参数生成逻辑及风控规避要点,为移动安全与逆向工程研究提供了完整的技术路径。

weixin_28347369的博客 527

C++ Qt的QLineEdit控件详解

本文详细介绍了Qt框架中的QLineEdit控件功能与应用。QLineEdit作为常用的单行文本输入框,支持多种属性设置,包括文本内容控制、显示模式、输入验证等。文章重点解析了文本对齐方式、正则表达式验证以及样式定制方法,展示了如何通过代码示例实现各种功能。QLineEdit可通过设置掩码、验证器确保输入格式,并支持QSS样式表自定义外观,使其能够灵活适应各类UI需求,如登录框、搜索框等场景。

软件科学-郝学胜 1421

深度解析跨境支付之业务架构

详解跨境支付之业务架构

weixin_47493863的博客 1878

NXP S32k3 MCAL ADC配置

S32K3 配置MCAL ADC

Leon_0125的博客 5071

【Qt学习】QLineEdit 控件 属性与实例(登录界面,验证密码,正则表达式)

文章介绍了1. QLineEdit 控件的属性、以及三个实例:登录界面、密码对比、显示输入框内容;以及2. 正则表达式的概念,QRegExp的概念、使用,以及利用正则表达式对文本框QLineEdit的内容进行验证。

卜及中的博客 3394

自动权重化图卷积网络(Auto-Weighted GCN)算法在反洗钱识别中的应用及代码实现

该算法通过自动学习节点之间的权重信息,能够更好地捕捉AML数据中的关系和结构,从而提高反洗钱识别的准确性和效果。传统的AML识别方法通常依赖于专家定义的规则和手动提取的特征,但这些方法在应对大规模和复杂的数据时存在一定的局限性。GCN通过在图上执行卷积操作来捕捉节点之间的关系和结构信息,从而实现对图数据的学习和表示。自动权重化图卷积网络是一种基于GCN的改进算法,能够自动学习节点之间的权重信息,从而更好地捕捉图中的关系。利用自动计算的权重值执行图卷积操作。根据节点之间的相似度,计算每个节点的权重。

syntax_api860的博客 376

【Qt开发】输入类控件(一)-> QLineEdit

Qt的QLineEdit控件提供了强大的单行文本输入功能,支持格式验证、密码显示、占位文本等特性。文章详细介绍了QLineEdit的核心属性(如text、maxLength、echoMode)、信号(如textChanged、returnPressed)以及验证机制(包括输入掩码和正则表达式)。通过多个代码示例演示了QLineEdit的实际应用场景:个人信息录入、电话号码验证、密码一致性检查及密码显示切换功能。这些特性使QLineEdit成为Qt开发中处理用户输入的核心组件。

枫叶丹4的博客 1368

STM32Cube高效开发教程<基础篇>(一)----概述

一、 STM32系列器件和开发工具发展历史声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(基础篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。一、 STM32系列器件和开发工具发展历史。

我的博客 1171

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Qt实战:用QLineEdit的inputMask打造智能表单输入(附常见掩码规则速查表)

本文深入探讨了Qt框架中QLineEdit的inputMask功能,通过输入掩码实现智能表单输入。文章详细解析了setInputMask方法的核心机制与掩码规则,提供了电话号码、日期、身份证号等常见表单字段的实战模板,并分享了获取干净文本、处理未完成输入等避坑技巧,帮助开发者提升桌面应用的数据录入体验与专业性。

weixin_29003437的博客 310

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PyQt5—基本窗口控件之 QLineEdit

基本窗口控件 四、QLineEdit QLineEdit 正如其名,是一个单行文本框控件,可以输入单行字符串,无法换行输入。用于输入用户名、密码以及其他简短输入的地方。

御承扬的博客 4736

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

转-PyQt5基本控件详解之QLineEdit

转:https://blog.youkuaiyun.com/jia666666/article/details/81510502 QLineEdit QLineEdit类中常用的方法如下表 方法    描述 setAlignment()    按固定值方式对齐文本 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右对齐 Qt.AlignCenter:水平方向居中对齐 Qt...

vanlyfanfan的专栏 5154

实战PyQt5: 007-单行编辑控件QLineEdit

QLineEdit 简介 QLineEdit是一个单行文本输入控件,可输入单行的文本字符串,这里输入常见的情况有 普通文本,比如用户登录名,文件保存路径等; 数字,整数或者浮点数; 密码输入; 日期输入; EMail地址; IP地址; MAC地址; 许可证号; 其他单行输入。 QLineEdit中常用方法: setAlignment():按规定的方式对齐文本; clear(): 清除文本框内容; setEchoMode():设置文本框的显示格式; setPlaceholderte

seniorwizard的专栏 1813

qlineedit只能输入数字_QLineEdit如何控制只能输入IP地址?

要让输入框只能输入IP地址,首先会想到的就是使用正则表达式。QLineEdit也支持使用正则表达式,就像这样: QLineEdit支持设置验证器来限制输入的内容,QRegExpValidator是其中一种。正则表达式写法有很多,以上的表达式可以参考一下:b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[...

weixin_39736047的博客 910
上一篇: libConfuse 使用说明
下一篇: 嵌入式Linux截图工具gsnap移植与分析
阿基米东
阿基米东 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄15年 9万+粉丝 513原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿基米东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值