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的输入内容只能为AF以及09的字符。

其实除了通过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

相关推荐
是娇娇公主~4 小时前
C++ 中 std::deque 的原理?它内部是如何实现的?
开发语言·c++·stl
SuperEugene4 小时前
Axios 接口请求规范实战:请求参数 / 响应处理 / 异常兜底,避坑中后台 API 调用混乱|API 与异步请求规范篇
开发语言·前端·javascript·vue.js·前端框架·axios
xuxie995 小时前
N11 ARM-irq
java·开发语言
wefly20176 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma1509806 小时前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默6 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
liwenzhuola7 小时前
解决 Ubuntu 上 Qt Creator 项目编译失败的问题
数据库·qt·ubuntu
kyriewen117 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
娇娇yyyyyy8 小时前
QT编程(18): Qt QItemSelectionModel介绍
开发语言·qt
豆豆的java之旅8 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构