当前位置: 首页 > news >正文

Qt常用控件之QLineEdit

Qt常用控件之QLineEdit

  • 1.QLineEdit概念
  • 2.实现简单的信息输入进行提交
  • 3.让输入的内容更加合法
  • 4.判断密码是否相等
  • 5.通过按钮来选择是否显示密码

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Qt的学习】
📝📝本篇内容:QLineEdit概念;实现简单的信息输入进行提交;让输入的内容更加合法;判断密码是否相等;通过按钮来选择是否显示密码
⬆⬆⬆⬆上一篇:Qt常用控件之QCalendarWidget
💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.QLineEdit概念

QLineEdit是一个单行输入框,可以输入一段文本,但是不能换行。在前面的代码中用的也比较多,这次可以多了解一些它的函数

函数声明函数说明
QString text() const返回文本内容
void setText(const QString &)设置文本内容
void setInputMask(const QString &inputMask)设置输入内容的格式限制
void setMaxLength(int)设置输入的最大长度,汉字和英文一视同仁
void setFrame(bool)是否要设置边框
void setEchoMode(QLineEdit::EchoMode)设置显示模式。QLineEdit::Normal :这是默认值,⽂本框会显示输入的文本;QLineEdit::Password :在这种模式下,输⼊的字符会被隐藏,通常⽤星号(*)或等号(=)代替;QLineEdit::NoEcho :在这种模式下,⽂本框不会显示任何输⼊的字符
void setCursorPosition(int)设置光标位置
void setAlignment(Qt::Alignment flag)设置对齐方式,可以设置水平和垂直方向的对齐
void setDragEnabled(bool b)设置文本是否可以拖拽,默认是不可以的
void setReadOnly(bool)设置是否是只读的
QString placeholderText() const当输⼊框内容为空的时候, 显示什么样的提示信息
void setClearButtonEnabled(bool enable)设置清除按钮

在这里插入图片描述

接下来就是一些它的信号

信号声明信号说明
void cursorPositionChanged(int oldPos, int newPos)当⿏标移动时发出此信号,old为先前的位置,new为新位置。
void editingFinished()当按返回或者回⻋键时,或者⾏编辑失去焦点时,发出此信号。
void selectionChanged()当双击选词、键盘快捷键(如Ctrl+A全选),发出此信号。
void textChanged(const QString &text)当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对⽂本的修改能够触发这个信号
void textEdited(const QString &text))当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对⽂本的修改不能触发这个信号

2.实现简单的信息输入进行提交

我们需要设置四个信息,分别是姓名,密码,性别和电话。其中只有性别需要使用单选按钮,其余的内容填写都是使用单行输入框,并且需要设置一个按钮作为提交按钮。
在这里插入图片描述
并且我们将它们的objectName分别命名为lineEdit_name,lineEdit_passward,radioButton_male,radioButton_female以及lineEdit_telephone
在这里插入图片描述
在这里插入图片描述
在每一个单行输入框中都进行设置了“提示内容”,这些提示内容只会在没有内容输入的时候淡淡的显示出来,一旦有内容输入就没有了
。并且对于输入的密码,我们进行了特殊的设置,输入的密码会以“小圆点”进行显示,这样能够保护用户的隐私。在中国,我们的电话号码是11位组成的,因此我们通过setInputMask函数进行设置了简单的输入格式限制,一旦超过11位就无法进行输入了,但是这种比较简单,后面代码展示加强限制。
在这里插入图片描述
通过进行输入后,我们可以发现我们设置地清除按钮也出现了,通过它,我可以将输入的内容全部清空。在这里我们的提交按钮就是简单的日志打印,但是在真正的使用中,一般性是通过网络传输到服务器。

3.让输入的内容更加合法

前面的代码中只对电话号码进行了简单的限制,还是会出现手机号码不正确的输入,因此我们需要加强设置,让我们的手机号码的第一位必须是1并且11位都是数字
因此我们需要使用到正则表达式来解决这个问题,正则表达式并不是一个编程语言专属的,它是编程界的通过方法,正则表达式就是一串带有特殊字符的字符串,特殊字符表示了另一个我们需要的字符串的特征。通过这些特征来匹配我们的字符串
可以通过这个连接来查看正则表达式,需要用到的时候进行查看即可,不用背,太过复杂:正则表达式
在这里插入图片描述
在这里插入图片描述
QLineEdit的这个槽函数的作用是当输入框的内容只要发生改变就会触发信号,因此每一次的输入都可以进行判断。
并且我们来看一下validate这个函数它的声明,它其实需要的是一个QString类型的,但是我们收到的参数是被const修饰的arg1,因此我们只能自己创建一个变量
在这里插入图片描述
这个函数有两个参数,第一个参数是要验证的字符串,第二个参数是一个引用类型,它能够告诉我们如果这个字符串不符合规则,则是从哪个位置开始不符合的
我们现在使用的这个QRegExpValidator是Qt内置的,我们也可以自定义一个Validator来重写validate函数
并且因为我们的正则表达式,我们输入的第一个必须是1否则不会输入显示,并且一旦满了11位后就不能再输入,如下,其实一直在输入,只不过被限制了
在这里插入图片描述

4.判断密码是否相等

接下来我们使用QLineEdit来写一个判断密码是否相等的代码,通过文本来显示当前的情况 这里是引用
在这里插入图片描述
代码非常简单,只通过我们textEdited信号来触发两个输入进行判断,虽然我们默认设置的密码状态是“当前密码为空”,但是还是需要在进行设置判断,当两个输入框都为空时,文本显示“当前密码为空”,这是因为要考虑到密码输到一半删除了。并且我们可以发现两个输入框的槽函数所写的代码是一样的,因此我们可以进行封装一个函数来减少代码冗余。
这里面还有一个细节就是我们的arg1,使用了(void)强转,这主要是因为不使用arg1会造成警告,虽然问题不大,但是有些公司是不允许有警告的问题,会把警告当成错误处理,因此为了避免这个问题,我们可以通过void强转来解决。
在这里插入图片描述
在这里插入图片描述

5.通过按钮来选择是否显示密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个代码就不详细解释了,注释中也已经说明了

🌸🌸Qt常用控件之QLineEdit大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

http://www.dtcms.com/a/414891.html

相关文章:

  • 在docker里面安装nextcloud
  • 3.6、操作系统
  • 2025最新centos7安装mysql8 相关 服务器配置 纯命令行操作 保姆级教程
  • Hadess入门到实战(4) - 如何管理Docker制品
  • Python 数学公式构建海洋不明生物(好像是水母)动画 - 傅里叶合成模拟复杂波形
  • 泰州建设企业网站福州企业免费建站
  • 美妆网站模板html5网站开发语言
  • 深度剖析OpenHarmony AI Engine:开发板端侧大模型推理插件机制全链路拆解
  • 链表的核心思想
  • Matlab通过GUI实现点云的坡度滤波(附最简版)
  • GESP8级——AT_icpc2013spring_e 最小生成树题解
  • Qt窗口与对话框开发指南
  • 湖北平台网站建设哪家好有经验的邵阳网站建设
  • 33.Linux iCSCI 服务
  • 国内优秀网页设计网站网站建设流程共有几个阶段
  • 基于物联网的个人健康管理系统(论文+源码)
  • 一个网站可以做几个关键词网站建设济南
  • Linux日志分析入门:使用grep和awk发现服务器异常访问
  • 435. 无重叠区间
  • 2025制造业研发流程提效指南:从审批卡顿到协同闭环,3类系统选型全解析
  • 文件夹随机分配 把文件夹随机分配到指定的文件夹中
  • 104.二叉树的最大深度(二叉树算法题)
  • 宿迁做网站的怎样制作h5
  • 电子商务网站建设结业论文seo教程seo官网优化详细方法
  • 使用 Three.js 和本地 Draco Loader 高效加载压缩 GLB 模型
  • Nginx-Proxy-Manager配置SSL泛域名证书教程
  • 图的遍历:从深度优先到广度优先
  • Java数据结构:ArrayList与顺序表1
  • C语言实战项目:贪吃蛇(1)
  • 鸿蒙应用开发之ArkTs集成AI大模型与Markdown流式渲染教程(API 20)