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

网站制作设计多少钱解读网站建设

网站制作设计多少钱,解读网站建设,小型手机网站建设,自己写wordpress主题目录 1 -> 概述 2 -> 核心属性 3 -> 核心信号 4 -> 核心功能与特性 5 -> 代码示例 5.1 -> 录入个人信息 5.2 -> 使用正则表达式验证输入框的数据 5.3 验证两次输入的密码一致 5.4 -> 切换显示密码 6 -> 结语 1 -> 概述 在 Qt 框架中&…

目录

1 -> 概述

2 -> 核心属性

3 -> 核心信号

4 -> 核心功能与特性

5 -> 代码示例

5.1 -> 录入个人信息

5.2 -> 使用正则表达式验证输入框的数据

5.3 验证两次输入的密码一致

5.4 -> 切换显示密码

6 -> 结语


1 -> 概述

在 Qt 框架中,QLineEdit 是一个基础且功能丰富的单行文本输入控件,它为应用程序提供了高效的用户文本输入解决方案。作为 Qt Widgets 模块的核心组件之一,QLineEdit 在各种桌面应用程序中扮演着不可或缺的角色。

2 -> 核心属性

属性说明
text输入框中的文本
inputMask输入内容格式约束
maxLength最大长度
frame是否添加边框
echoMode

显示方式

  • QLineEdit::Normal:这是默认值,文本框会显示输入的文本
  • QLineEdit::Password:在这种模式下,输入的字符会被隐藏,通常用星号(*)或等号(=)代替
  • QLineEdit::NoEcho:在这种模式下,文本框不会显示任何输入的字符
cursorPosition光标所在位置
alignment文字对齐方式,设置水平和垂直方向的对齐
dragEnabled是否允许拖拽
readOnly是否是只读的(不允许修改)
placeHolderText当输入框内容为空的时候,显示什么样的提示信息
clearButtonEnabled是否会自动显示出 “清除按钮”

3 -> 核心信号

属性说明
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 是新的文本

代码对文本的修改不能触发这个信号

4 -> 核心功能与特性

QLineEdit 不仅仅是一个简单的文本框,它集成了多种实用功能以满足不同的输入需求。控件支持标准文本编辑操作,包括复制、剪切、粘贴和撤销重做等功能,提供了熟悉的编辑体验。通过设置验证器和输入掩码,开发者可以轻松限制用户输入的内容格式,确保数据的准确性和一致性。

该控件还提供了丰富的显示选项,开发者可以设置占位符文本以提示用户输入内容,也可以控制密码字段的显示模式,保护敏感信息。边框和背景样式的可定制性使得 QLineEdit 能够完美融入各种界面设计。

5 -> 代码示例

5.1 -> 录入个人信息

1. 在界面上创建三个输入框,两个单选按钮和一个普通按钮

三个输入框的 objectName 分别为 lineEdit_name、lineEdit_password、lineEdit_phone

两个单选框的 objectName 分别为 radioButton_male、radioButton_female

普通按钮的 objectName 为 pushButton_submit

2. 编写 widget.cpp,在构造函数中编写初始化代码

#include "widget.h"
#include "ui_widget.h"#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化姓名输入框ui->lineEdit_name->setPlaceholderText("请输入姓名");ui->lineEdit_name->setClearButtonEnabled(true);// 初始化密码输入框ui->lineEdit_password->setPlaceholderText("请输入密码");ui->lineEdit_password->setClearButtonEnabled(true);// 显式模式设置成密码模式ui->lineEdit_password->setEchoMode(QLineEdit::Password);// 初始化手机号输入框ui->lineEdit_phone->setPlaceholderText("请输入手机号");ui->lineEdit_phone->setClearButtonEnabled(true);// 手机号码是有固定格式的. 此处的 0 代表 "数字"ui->lineEdit_phone->setInputMask("000-0000-0000");
}Widget::~Widget()
{delete ui;
}

3. 继续修改 widget.cpp,给按钮添加 slot 函数

void Widget::on_pushButton_submit_clicked()
{QString value = ui->radioButton_male->isChecked() ? "男" : "女";qDebug() << "姓名: " << ui->lineEdit_name->text()<< "密码: " << ui->lineEdit_password->text()<< "性别: " << value<< "手机号: " << ui->lineEdit_phone->text();
}

4. 运行程序,可以看到,随着用户输入内容之后,点击按钮,就能打印到输入的信息

inputMask 只能进行简单的输入格式校验

实际开发中,基于正则表达式的方式是更核心的方法。

5.2 -> 使用正则表达式验证输入框的数据

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

1. 在界面上创建输入框和一个按钮

2. 编写 widget.cpp,把按钮初始 enabled 设为 false。给输入框添加验证器

  • 使用 QRegExp 创建一个正则表达式对象。"^1\\d{10}$" 表示 “以 1 开头,后面跟上任意的 10 个十进制数字”。
  • 使用 QRegExpValidator 创建一个验证器对象。Qt 中内置了四个主要的验证器对象。

QRegularExpressionValidator 在匹配性能上做出了一定优化。但是从使用角度来说,和 QRegExpValidator 差别不大。

#include "widget.h"
#include "ui_widget.h"#include <QRegExpValidator>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QRegExp regexp("^1\\d{10}$");ui->lineEdit->setValidator(new QRegExpValidator(regexp));
}Widget::~Widget()
{delete ui;
}

3. 编写 widget.cpp,给 lineEdit 添加 textEdited 信号的 slot 函数

  • on_lineEdit_textEdited 的参数是当前输入框的内容。
  • 通过 lineEdit->validator() 获取到内置的验证器。
  • 通过 validate 方法验证文本是否符合要求。
    • 第一个参数填写的是要验证的字符串,由于参数要求是 QString& 而不是 const QString&,需要把这个变量复制一下。
    • 第二个参数是一个 int&,是输出型参数。当验证的字符串不匹配时,返回这个字符串的长度。
    • 返回值是一个枚举。QValidator::Acceptable 表示验证通过,QValidator::Invalid 表示验证不通过。
void Widget::on_lineEdit_textEdited(const QString &text)
{QString content = text;int pos = 0;if (ui->lineEdit->validator()->validate(content, pos) == QValidator::Acceptable){// 通过验证ui->pushButton->setEnabled(true);}else{// 未通过验证ui->pushButton->setEnabled(false);}}

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

5.3 验证两次输入的密码一致

1. 在界面上创建两个输入框和一个 QLabel

2. 编写代码,设置两个输入框的 echoMode 为 Password

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 设置成为密码模式ui->lineEdit->setEchoMode(QLineEdit::Password);ui->lineEdit_2->setEchoMode(QLineEdit::Password);ui->label->setText("密码为空");}Widget::~Widget()
{delete ui;
}

3. 给两个输入框设置 textEdited 的 slot 函数

void Widget::on_lineEdit_textEdited(const QString &arg1)
{(void) arg1;this->compare();
}void Widget::on_lineEdit_2_textEdited(const QString &arg1)
{(void) arg1;this->compare();
}void Widget::compare()
{const QString& s1 = ui->lineEdit->text();const QString& s2 = ui->lineEdit_2->text();if (s1.isEmpty() && s2.isEmpty()){ui->label->setText("密码为空");}else if(s1 == s2){ui->label->setText("两次输入的密码一致");}else{ui->label->setText("两次输入的密码不一致");}}

4. 运行程序,可以看到,当两个输入框内的密码相同时,就会提示密码相同

5.4 -> 切换显示密码

1. 创建一个输入框和一个复选按钮

2. 修改 widget.cpp,设置输入框的 echoMode 为 Password

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化显示模式为密码模式ui->lineEdit->setEchoMode(QLineEdit::Password);ui->lineEdit->setPlaceholderText("请输入密码");
}Widget::~Widget()
{delete ui;
}

3. 修改 widget.cpp,给 checkBox 添加 slot 函数

void Widget::on_checkBox_toggled(bool checked)
{if (checked){// 为“true” 显示模式切换为Normalui->lineEdit->setEchoMode(QLineEdit::Normal);}else{// 为“false” 显示模式切换为Passwordui->lineEdit->setEchoMode(QLineEdit::Password);}
}

4. 运行程序,可以看到,切换复选框的状态,就可以控制输入框显示密码

6 -> 结语

QLineEdit 作为 Qt 框架中文本输入的基础组件,以其丰富的功能、灵活的定制选项和稳定的性能,成为开发者在构建桌面应用程序时的首选工具之一。无论是简单的数据输入还是复杂的交互需求,QLineEdit 都能提供可靠的解决方案,体现了 Qt 框架对开发者需求的深入理解和精心设计。


感谢各位大佬支持!!!

互三啦!!!

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

相关文章:

  • 网站优化的要求手机怎么编辑网页
  • wordpress登录可见seo刷词工具在线
  • 网站301重定向检测合肥企业网站
  • 网站建设买了域名网站建设 专项资金变更
  • 企业网站建设个人博客空间商网站
  • 免费空间网站php怎么在网站上做seo
  • 做网站大图片什么是oa系统
  • 做音乐网站需要版权么地图网站怎么做
  • 化妆品产品的自建网站哟哪些网站建设后台管理怎么进入
  • 用织梦做的网站ftp怎么登陆wordpress网站维护中
  • 苏州哪里做网站开封市建设中专网站
  • 辽宁省住房和城乡建设部网站主页网站建设定义是什么
  • 兰州建设厅评职称网站检察院网站建设标书
  • thinkphp 显示第三方网站图片怎样看网站建设制作方
  • 成都网站seo收费标准图片加字在线制作
  • 广州seo优化代理兰州网站seo
  • 湛江模板建站多少钱做温泉机的企业网站
  • 做网站买什么服务器 便宜用什么语言能写网站吗
  • 手机搭建网站教程视频哪些网站可以注册邮箱
  • 团购网站开发需要多久内蒙古网站建设百度
  • 给你一个网站你怎么做的怎么做个小程序
  • 烟台做网站那家好重庆欧勒精细有限公司网站策划书
  • 物流网站给做软件下载网页设计与制作教程游戏页面
  • 网站弹出信息怎么做的新东方线下培训机构官网
  • 网站建立分站加强网站微信公众号平台建设
  • 企业宣传网站建设模板怎么上网做网站
  • 网站用户粘性北京住房和城乡建设部官方网站
  • 律师网站设计中国小康建设网是骗子网站吗?
  • 上海智能网站建设如何做营销型手机网站优化
  • 网站全局搜索吕梁网站定制