您的位置:首页 > 房产 > 家装 > 全景效果图网站_闵行做网站_北京百度关键词推广_榆林市网站seo

全景效果图网站_闵行做网站_北京百度关键词推广_榆林市网站seo

2025/8/25 18:08:56 来源:https://blog.csdn.net/m0_73673820/article/details/147347635  浏览:    关键词:全景效果图网站_闵行做网站_北京百度关键词推广_榆林市网站seo
全景效果图网站_闵行做网站_北京百度关键词推广_榆林市网站seo

目录

代码示例: 录入个人信息

代码示例:使用正则表达式验证输入框的数据

代码示例:验证两次输入的密码一致

代码示例: 切换显示密码


QLineEdit ⽤来表⽰单⾏输⼊框. 可以输⼊⼀段⽂本, 但是不能换⾏
核⼼属性
属性说明
text输入框中的文本
inputMask输入内容格式约束
maxLength最大长度
frame是否添加边框
echoMode显示方式:
• QLineEdit::Normal:这是默认值,⽂本框会显⽰输⼊的⽂本。
• QLineEdit::Password :在这种模式下,输⼊的字符会被隐藏,
通常⽤星号(*)或等号(=)代替。
• QLineEdit::NoEcho :在这种模式下,⽂本框不会显⽰任何输⼊
的字符。
cursorPosition光标所在位置
alignment文字对齐方式(水平/垂直方向)
dragEnabled是否允许拖拽
readOnly是否只读(不允许修改)
placeHolderText输入框为空时的提示信息
clearButtonEnabled是否显示"清除按钮"
核⼼信号
信号说明
void cursorPositionChanged(int old, int new)当鼠标移动时发出此信号,old为先前的位置,new为新位置。
void editingFinished()当按返回或者回车键时,或者行编辑失去焦点时,发出此信号。
void returnPressed()当返回或回车键按下时发出此信号。如果设置了验证器,必须要验证通过,才能触发。
void selectionChanged()当选中的文本改变时,发出此信号。
void textChanged(const QString &text)QLineEdit中的文本改变时,发出此信号,text是新的文本。代码对文本的修改能够触发这个信号。
void textEdited(const QString &text)QLineEdit中的文本改变时,发出此信号,text是新的文本。代码对文本的修改不能触发这个信号。
这个text属性不仅仅可以通过代码来设置,用户在输入框中进行编辑,也会影响到text值的变化~~
1)通过代码中设置text,界面上的文本会发生改变.
2)直接操作修改界面上的文本(输入框,可以编辑的),text属性的值也会发生改变。
很多网站,输入框里都是会限制字数的~~
placeHolderText
placeHolder可以起到“提示作用”
当输入框为空的时候,没有任何内容的时候,提示信息才会存在~~
一旦用户在这里进行任何动作输入
这个提示信息就没了~~

clearButtonEnabled
如果输入框为空,此时没有任何的显示
当输入框有内容的时候,右侧就会出现一个删除
一旦用户在输入框中输入内容了~~
会出现按钮,点击按钮就能立即把输入框的所有内容给
清空掉~~

代码示例: 录入个人信息


1)在界面上创建三个输入框和两个单选按钮,一个普通按钮
三个输入框的 objectName 为 lineEdit name,lineEdit password
lineEdit_phone
两个单选按钮的 objectName 为 radioButton_male ,radioButton_female
按钮的 objectName 为 pushButton
2)编写 widget.cpp,在构造函数中编写初始化代码
3) 继续修改 widget.cpp, 给按钮添加 slot 函数
4) 执⾏程序, 可以看到, 随着用户输⼊内容之后, 点击按钮, 就能打印到输⼊的信息

 inputMask 只能进行简单的输入格式校验
实际开发中,基于正则表达式的方式是更核心的方法

inputMask功能比较有限,只能进行简单的验证.
就需要使用“正则表达式”
计算机中的通用概念,和具体的编程语言无关


正则表达式,本质上就是一个带有特殊字符的字符串.特殊字符用来表示另一个字符串的特征。
此时就可以借助正则表达式来描述出一些具有一定特点的字符串,
基于这些特点,就可以完成字符串的匹配~~

代码示例:使用正则表达式验证输入框的数据


此处要求在输入框中输入一个合法的电话号码(1 开头,11位全都是数字)如果验证不通过,则确定按钮
无法点击。

关于正则表达式
正则表达式是一种在计算机中常用的,使用特殊字符描述一个字符串的特征的机制.在进行字
符串匹配时非常有用
正则表达式的语法还比较复杂,一般都是随用随查,不需要背下来

参考:
正则表达式⽂档https://learn.microsoft.com/zh-cn/previousversions/visualstudio/visual-studio-2008/ae5bf541(v=vs.90)?redirectedfrom=MSDN
正则表达式在线⼯具
https://regextester.buyaocha.com/
1) 在界⾯上创建输⼊框和⼀个按钮.
此处的规则是,输入框要检查输入的内容是否是合法的手机号码,
如果是,则按钮设为可用状态,
如果不是,则设为禁用状态
2)编写 widget.cpp,把按钮初始 enabled 设为 false.给输入框添加验证器
使用 QRegExp 创建一个正则表达式对象"^1\\d{10}$” 表示"以1开头,后面跟上任意的10
个十进制数字"
使用 QRegExpValidator 创建一个验证器对象,Qt中内置了四个主要的验证器对象

QRegularExpressionValidator 在匹配性能上做出了⼀定优化. 但是从使⽤⻆度讲, 和 QRegExpValidator 差别不⼤. 我们使⽤ QRegExpValidator 即可

 

3)编写 widget.cpp,给 LineEdit 添加 textEdited 信号的 slot函数
on_lineEdit_textEdited 的参数是当前输入框的内容
通过 LineEdit->validator() 获取到内置的验证器
通过 validate 方法验证文本是否符合要求
●第一个参数填写的是要验证的字符串由于参数要求是 string& 而不是 const
QString&,需要把这个变量复制一下
●第二个参数是一个int&,是输出型参数当验证的字符串不匹配时,返回这个字符串的长度.(没有
啥实质作用).
●返回值是一个枚举,QValidator::Acceptable 表示验证通过
QValidator::Invalid 表示验证不通过

\\d:表示数字(\\不转义,\转义)

4)执行程序,观察效果可以看到此时尝试输入字母是无法输入的.并且只有当输入的内容符合要求,确
定按钮才能被使用

 “^1\\d{10}$"
这是一个简单的验证手机号码的正则表达式
^表示以 xxx 开头.
^后面跟着的1,意思就是以1开头
\d表示数字,为了在C++字符串中使用,需要写作\\d
{10}表示前面的内容重复出现10次.\d数字要重复出现10次.
$表示结尾了.

QRegExp regExp("^1\\d{10}$");
ui->lineEdit->setValidator(new QRegExpValidator(regExp));
只是注册一个验证器,具体验证器怎么使用,还需要写其他代码来完成~~


验证输入框的内容,是否合法.
只要输入框中的内容发生改变了,验证操作就应该被执行~~

State validate(QString&, int&)
第一个参数,是要验证的字符串.参数类型是QString&
不是 const !!!

第二个参数,如果你的字符串不符合规则,是从哪个位置开始不符合的~~
程序员可以自定义一个Validator,重写validate函数.
刚才用的 RegExpValidator 是 Qt 内置的.

代码示例:验证两次输入的密码一致


1)在界面上创建两个输入框和一个 label

2) 编写代码, 设置两个输⼊框的 echoMode Password

3) 给两个输⼊框设置 textEdited slot 函数

(void)arg1;骗过编译器

 

 

相同的逻辑可以写在一个函数里compare()

4) 执⾏程序, 观察效果.
可以看到当两个输⼊框内的密码相同时, 就会提⽰密码相同
验证两次输入的密码是否一致.
使用textEdited信号,来触发对于两个输入框内容的判定~~
QString &arg
△ unused parameter 'arg1'
警告不处理也是完全可以的,
以后在公司中,有的团队可能要求,把警告当成错误一样处理~~
(void) arg1;
这个写法就是类型转换
这个写法对于代码的实际逻辑是没有任何影响的。
同时可以“骗过”编译器,警告就没了~~

代码示例: 切换显示密码

1) 创建⼀个输⼊框和⼀个复选按钮
2) 修改 widget.cpp, 设置输⼊框的 echoMode Password
3) 修改 widget.cpp, 给 checkBox 添加 slot 函数
4) 执⾏程序, 可以看到切换复选框的状态, 就可以控制输⼊框显⽰密码

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com