QLineEdit

该文档进行QT中的QLineEdit控件的介绍

简介

QLineEdit属于QT中一种常用的输入控件,用于用户层与数据层之间的交互

掩码

在QLineEdit中,允许我们对于输入格式进行规定,其中一种很经典的模式就是掩码

其中存在着几种模式,简单介绍下

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

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

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

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

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

位于QT的官方英文文档可以自行查看,这里给出GPT的中文翻译掩码文档

rules

moreRules

我们可以使用这些字符的多种排列组合来进行我们掩码的设计

对于GPT给出的语言,有些地方可能有点疑惑,我们来进行一下分析:

  1. 必须输入

    ​ 这个没什么好说的,就是这个掩码在的位置上必须输入对应要求的字符

  2. 允许使用但不要求使用

    ​ 这个指的是这个位置上可以输入数据也可以不输入数据。但是如果你要输入数据,

    那么你输入的这个数据就必须是我们要求的数据。就比如a,对于这个占位符在的地方,

    要么直接略过,要么就输入A-Z,a-z的字母。

由上面,我们来举出一个例子,不进行赘述了,自行搓码

1
2
3
4
QString ip=QString("000.000.000.000;_");
QString mac=QString("HH:HH:HH:HH:HH:HH");
ui->ipEdit->setInputMask(ip);
ui->macEdit->setInputMask(mac);

题外话,QT的官方英文文档确实多且杂,还好现在有大模型可以减轻这方面的阅读压力啊

除了限定我们的输入格式之外,QLineEdit还提供了我们输入时的显示格式等一系列功能

这里我们只说明下对应的输入显示功能

1
2
3
4
//ui->pwdEdit->setEchoMode(QLineEdit::Password);
//ui->pwdEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
//ui->pwdEdit->setEchoMode(QLineEdit::Normal);
ui->pwdEdit->setEchoMode(QLineEdit::NoEcho);

QT中提供了4种输入格式,分别就是上面的四个宏,都可以在对应的帮助文档中查询到,这里不进行赘述

直接给出GPT的翻译,简单看一下功能即可

editRules

正则表达式

回过头来看,使用掩码来直接规定输入格式其实在一定程序上限制了程序

因此,我们需要考虑一种具有更强的扩展性又很规范的格式来规定我们的输入

在QT中,正则表达式就是其中的一种

在这里,我们并不深入去了解正则表达式的格式,我直接贴出GPT翻译后的规则

其实,正则表达式这种具有严格规定的模式设计起来很麻烦,

但是现在我们可以直接使用GPT去为我们生成对应的正则表达式,所以啊,善用工具吧

regularRule

regularRule2

1
2
3
QRegularExpression regex("^[\\w\\.-]+@[\\w\\.-]+\\.[a-zA-Z]{2,}$");
QRegularExpressionValidator* validator=new QRegularExpressionValidator(regex,ui->emailEdit);
ui->emailEdit->setValidator(validator);

如上,这就是一个GPT辅助生成的正则表达式,我只要理解了这些个到底是一个怎么个使用情况,

对于生成正则表达式这种吃力不讨好的工作就可以交给大模型来完成。

话毕,溜溜球

-------------本文结束 感谢阅读-------------