QT系列教程(7) QLineEdit介绍

ops/2024/9/23 4:17:51/

简介

QLineEdit属于输入插件,用来实现单行录入。支持几种录入模式。

Normal表示正常录入,录入的信息会显示在QLineEdit上。

Password表示密码录入的方式,录入的信息不显示QLineEdit,只是通过黑色圆点显示。

NoEcho 表示不显示录入信息,类似于Linux输入密码时,显示的是一片空白。

PasswordEchoOnEdit 表示在输入的一刹那可以看到字符,但是立刻变为不可见的黑色圆点显示。

实战

我们创建一个QApplication项目,名字叫editline。项目主界面取名MainWindow类,继承于QMainWindow。Qt为我们自动生成ui文件。
然后在ui界面里添加四个QLineEdit和Label
https://cdn.llfc.club/1662970999599.jpg

我将ip的QLineEdit名字改为ipedit,设置ipedit的输入方式为Normal,这样可以在输入时看到输入的字符。
我们可以给ipedit设置mask规定输入的字符只能为0~9的数字

    ui->ipedit->setEchoMode(QLineEdit::Normal);QString ip_mask = "000.000.000.000;_";ui->ipedit->setInputMask(ip_mask);

具体的mask规则可以参考Qt官方文档,这里列举一下常见的mask规则
https://cdn.llfc.club/1662970630125.jpg
利用上面的规则我们可以编写一些常用的mask
https://cdn.llfc.club/1662970790903.jpg
接下来我们设置mac地址的mask和录入模式,mac地址的edit被命名为macedit

    ui->macedit->setEchoMode(QLineEdit::Normal);QString mac_mask = "HH:HH:HH:HH;_";wui->macedit->setInputMask(mac_mask);

通过设置mask,规定mac的输入内容只能为AF以及09的字符。

其实除了通过mask限制edit录入的内容外,还可以通过正则表达式限制,比如我们设置邮箱edit的录入内容

    ui->emailedit->setEchoMode(QLineEdit::Normal);//设置正则表达式过滤  secondtonone23@163.comQRegExp regx("[a-zA-Z0-9_-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+");QValidator *validator = new QRegExpValidator(regx, ui->emailedit );ui->emailedit->setValidator(validator);

我们通过正则表达式限定了有限的规则为 “字符串和数子组合 + @ + 字符串和数子组合 + . + 字符串和数子组合”。
具体的正则表达式可以去Qt文档查看,也可以看看下边这个图
https://cdn.llfc.club/1662972302981.jpg
接下来我们可以设置密码输入框的输入模式为Password,保证录入时不显示密码

 ui->passwdedit->setEchoMode(QLineEdit::Password);

总结

源码链接https://gitee.com/secondtonone1/qt-learning-notes


http://www.ppmy.cn/ops/45829.html

相关文章

开发语言Java+前端框架Vue+后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势?

开发语言Java前端框架Vue后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势? ADR药物不良反应监测系统具有多个显著的优势,这些优势主要体现在以下几个方面: 一、提高监测效率与准确性: 通过自动化的数据收集…

放开了去的 ulimit

放开了去的 ulimit 放开了去的 ulimitulimit简介临时修改打开文件数目永久修改系统总打开句柄限制更多信息 放开了去的 ulimit ulimit简介 对于高并发或者频繁读写文件的应用程序而言,有时可能需要修改系统能够打开的最多文件句柄数,否则就可能会出现t…

项目结构与模块划分策略

项目结构与模块划分策略可以根据项目的规模、功能需求和团队组成进行合理的设计。以下是一些常见的策略: 按功能划分:将项目按照不同的功能划分为不同的模块。每个模块负责处理特定的功能,如用户管理、订单处理、支付等。这种划分方式使得代码…

模型构建器之迭代器

上一篇我们介绍了模型构建器的基础,将一个工作流串联起来,然后做成模型工具。今天我们介绍模型构建器的第二个重要功能——迭代,也就是程序中的循环。 先来看一个例子。要给数据库中所有要素类添加一个相同的字段,该怎么做&#…

Python 时间戳转时间

一、 10 位 时间戳 ,秒级 转换为时间 方式一: import timetimeStamp 1717149862 timeArray time.localtime(timeStamp) timeStr time.strftime("%Y-%m-%d %H:%M:%S", timeArray) print(timeStr) 输出: 2024-05-31 18:04:22方式二&#xf…

浅谈网络通信(1)

文章目录 一、认识一些网络基础概念1.1、ip地址1.2、端口号1.3、协议1.4、协议分层1.5、协议分层的2种方式1.5.1、OSI七层模型1.5.2、TCP/IP五层模型[!]1.5.2.1、TCP/IP五层协议各层的含义及功能 二、网络中数据传输的基本流程——封装、分用2.1、封装2.2、分用2.2.1、5元组 三…

请说明Vue中$root、$refs、$parent的使用

在 Vue 中,$root、$refs 和 $parent 都是实例属性,它们提供了访问 Vue 组件树中不同部分的方式。下面我会分别解释这三个属性的使用: $root $root 属性用于访问 Vue 应用的根实例。在大多数应用中,你不需要直接访问根实例&#…

Docker网络

网络 自定义网络 使用docker部署项目 使用dockercompose 使用持续继承 devops UUID 全局id策略