QT系列教程(7) QLineEdit介绍

简介

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

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

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

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

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

实战

我们创建一个QApplication项目,名字叫editline。项目主界面取名MainWindow类,继承于QMainWindow。Qt为我们自动生成ui文件。

然后在ui界面里添加四个QLineEdit和Label

我将ip的QLineEdit名字改为ipedit,设置ipedit的输入方式为Normal,这样可以在输入时看到输入的字符。

我们可以给ipedit设置mask规定输入的字符只能为0~9的数字

cpp 复制代码
    ui->ipedit->setEchoMode(QLineEdit::Normal);
    QString ip_mask = "000.000.000.000;_";
    ui->ipedit->setInputMask(ip_mask);

具体的mask规则可以参考Qt官方文档,这里列举一下常见的mask规则

利用上面的规则我们可以编写一些常用的mask

接下来我们设置mac地址的mask和录入模式,mac地址的edit被命名为macedit

cpp 复制代码
    ui->macedit->setEchoMode(QLineEdit::Normal);
    QString mac_mask = "HH:HH:HH:HH;_";w
    ui->macedit->setInputMask(mac_mask);

通过设置mask,规定mac的输入内容只能为A~F以及0~9的字符。

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

cpp 复制代码
    ui->emailedit->setEchoMode(QLineEdit::Normal);
    //设置正则表达式过滤  secondtonone23@163.com
    QRegExp 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文档查看,也可以看看下边这个图

接下来我们可以设置密码输入框的输入模式为Password,保证录入时不显示密码

cpp 复制代码
 ui->passwdedit->setEchoMode(QLineEdit::Password);

总结

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

相关推荐
蜡笔小新..7 分钟前
R语言和RStudio安装
开发语言·r语言
ALPH_8 分钟前
R语言的基础命令及实例操作
开发语言·数据分析·r语言·perl·r语言-4.2.1
咩咩觉主11 分钟前
C# &Unity 唐老狮 No.6 模拟面试题
开发语言·unity·面试·c#·游戏引擎·唐老师
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧3 小时前
C语言_数据结构总结8:链式队列
c语言·开发语言·数据结构·链表·visualstudio·visual studio
千里码aicood3 小时前
[含文档+PPT+源码等]精品基于Python实现的校园小助手小程序的设计与实现
开发语言·前端·python
讨厌下雨的天空3 小时前
C++之list
开发语言·c++·list
大麦大麦3 小时前
深入剖析 Sass:从基础到进阶的 CSS 预处理器应用指南
开发语言·前端·css·面试·rust·uni-app·sass
hhw1991124 小时前
c#面试题整理6
java·开发语言·c#
蠟筆小新工程師4 小时前
Deepseek可以通过多种方式帮助CAD加速工作
开发语言·python·seepdeek
天道有情战天下5 小时前
python flask
开发语言·python·flask