Qt QLineEdit详解

ops/2024/10/18 14:25:00/

1.简介

QLineEdit是一个单行文本编辑器。
行编辑允许用户使用一组有用的编辑功能输入和编辑单行纯文本,包括撤消和重做、剪切和粘贴以及拖放。
通过更改行编辑的echoMode,它也可以用作“只写”字段,用于密码等输入。
文本的长度可以限制为maxLength,文本可以使用validator或inputMask进行任意约束,也可以同时使用这两种方法。在同一行编辑的validator和inputMask之间切换时,最好清除validator或输入mask,以防止出现未定义的行为。

一个相关的类是QTextEdit,它允许多行富格文本编辑。

默认键被绑定描述如下。输入框还提供了一些编辑选项的上下文菜单(通常通过单击鼠标右键调用)。

按键动作
Left Arrow光标左移一个字符
Shift+Left Arrow光标左移并选择一个字符
Right Arrow光标右移一个字符
Shift+Right Arrow光标右移并选择一个字符
Home将光标移动到行的开头
End将光标移动到行的末尾
Backspace删除光标左侧字符
Ctrl+Backspace删除光标左侧的单词
Delete删除光标右侧字符
Ctrl+Delete删除光标右侧的单词
Ctrl+A全选
Ctrl+C复制选中的文本复制到剪贴板
Ctrl+Insert复制选中的文本复制到剪贴板
Ctrl+K删除此处至末尾所有内容
Ctrl+V粘贴剪贴板的文本到输入框中
Shift+Insert粘贴剪贴板的文本到输入框中
Ctrl+X剪切选中的文本到剪贴板
Shift+Delete剪切选中的文本到剪贴板
Ctrl+Z撤销上一次操作
Ctrl+Y重做上一次操作

2.常用方法

  • clear(): 清除 QLineEdit中的文本。
  • setText(const QString &): 设置 QLineEdit 中的文本。
  • text() const: 获取 QLineEdit 中的文本。
  • setMaxLength(int): 设置文本的最大长度。
  • maxLength() const: 获取文本的最大长度。
  • setEchoMode(EchoMode): 设置文本的显示方式。
  • echoMode() const: 获取文本的显示方式。
  • setReadOnly(bool): 设置 QLineEdit 是否为只读。
  • isReadOnly() const: 检查 QLineEdit 是否为只读。
  • setPlaceholderText(const QString &): 设置占位文本。
  • placeholderText() const: 获取占位文本。
  • setInputMask(const QString &): 设置输入掩码。
  • inputMask() const: 获取输入掩码。
  • setAlignment(Qt::Alignment): 设置文本的对齐方式。
  • alignment() const: 获取文本的对齐方式

枚举:QLineEdit::EchoMode 描述输入框如何显示其内容。

常量描述
QLineEdit::Normal0正常显示输入的字符,默认选项。
QLineEdit::NoEcho1不显示任何输入,常用于密码类型,其密码长度都需要保密的时候。
QLineEdit::Password2显示平台相关的密码掩码字符,而不是实际的字符输入。
QLineEdit::PasswordEchoOnEdit3在编辑的时候显示字符,负责显示密码类型。

下表列出了可在一个输入掩码中使用的字符,setInputMask调用。

字符含义
AASCII字母字符是必须的,A-Z、a-z。
aASCII字母字符是允许的,但不是必须的。
NASCII字母字符是必须的,A-Z、a-z、0-9。
nASCII字母字符是允许的,但不是必须的。
X任何字符都是必须要的。
x任何字符都是允许的,但不是必须要的。
9ASCII数字是必须要的,0-9。
0ASCII数字是允许的,但不是必须要的。
DASCII数字是必须要的,1-9。
dASCII数字是允许的,但不是必须要的 (1-9)。
#ASCII数字或加/减符号是允许的,但不是必须要的。
H十六进制数据字符是必须要的,A-F、a-f、0-9。
h十六进制数据字符是允许的,但不是必须要的。
B二进制数据字符是必须要的,0-1。
b二进制数据字符是允许的,但不是必须要的。
>所有的字符字母都大写
<所有的字符字母都小写
!关闭大小写转换
\使用 \ 去转义上述列出的字符。

常用信号:

  • textChanged(const QString &): 当文本发生变化时发出此信号。
  • textEdited(const QString &): 当文本被编辑(用户输入)时发出此信号。
  • cursorPositionChanged(int, int): 当光标位置发生变化时发出此信号。
  • editingFinished(): 当编辑完成时发出此信号,通常是在用户按下回车键或 QLineEdit 失去焦点时。

3.示例

示例1:用户登录界面

设置占位符,设置密码模式。

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->leUserName->setPlaceholderText("请输入用户名");ui->lePasswd->setPlaceholderText("请输入密码");ui->lePasswd->setEchoMode(QLineEdit::Password);
}Widget::~Widget()
{delete ui;
}
示例2:设置mask或者正则表达式

 

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->leIp->setInputMask("000.000.000.000");ui->leMac->setInputMask("HH:HH:HH:HH:HH:HH");//新建整数验证器QIntValidator *intVali = new QIntValidator(0, 10);//设置ui->leValidator->setValidator(intVali);
}Widget::~Widget()
{delete ui;
}
示例3:设置自动补全

#include "widget.h"
#include "ui_widget.h"
#include <QCompleter>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);//年份列表QStringList listName;listName<<"李四"<<"李思"<<"李丽";//补全器QCompleter *cp = new QCompleter(listName);//设置给 lineEditYearui->lineEdit->setCompleter(cp);
}Widget::~Widget()
{delete ui;
}
示例4:自定义搜索框

#include "widget.h"
#include "ui_widget.h"
#include <QCompleter>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->leSearch->setPlaceholderText("请输入搜索关键词");ui->leSearch->setStyleSheet("QLineEdit""{""color: rgb(75,79,81); ""font: 75 14px; border: 0px solid rgb(13, 65, 119);""border-radius: 3px;""background:rgb(255,255,255);""selection-background-color: rgb(36,37,39);""}""QLineEdit:hover""{""border: 1px solid rgb(13, 65, 119);""}");ui->btnSearch->setStyleSheet("QToolButton{border-image: url(:/btn_search_normal.png);}""QToolButton:hover{border-image: url(:/btn_search_hover.png);}""QToolButton:pressed{border-image: url(:/btn_search_press.png);}");
}Widget::~Widget()
{delete ui;
}

4.更多推荐

libVLC 专栏介绍-CSDN博客

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍_qt opengl视频播放器-CSDN博客

QCharts -1.概述-CSDN博客


http://www.ppmy.cn/ops/26921.html

相关文章

【C++】二叉树的进阶

二叉树的进阶 二叉搜索树概念操作实现创建树形结构拷贝构造函数构造函数析构函数赋值运算符重载循环版本查找插入删除 递归版本查找插入删除 应用K模型KV模型性能分析 二叉树进阶面试题二叉树创建字符串二叉树的分层遍历I最近公共祖先二叉搜索树与双向链表前序遍历与中序遍历构…

【多模态大模型】AI对视频内容解析问答

文章目录 1. 项目背景2. 直接对视频进行解析进行AI问答&#xff1a;MiniGPT4-Video2.1 MiniGPT4-Video效果 3. 对视频抽帧为图片再进行AI问答3.1 视频抽帧3.2 图片AI问答3.2.1 阿里通义千问大模型 Qwen-vl-plus3.2.2 Moonshot 1. 项目背景 最近在做一个项目,需要使用AI技术对视…

Spring Boot集成Spring Session快速入门Demo

1.什么事Spring Session&#xff1f; HTTP协议本身是无状态的&#xff0c;为了保存会话信息&#xff0c;浏览器Cookie通过SessionID标识会话请求&#xff0c;服务器以SessionID为key来存储会话信息。在单实例应用中&#xff0c;可以考虑应用进程自身存储&#xff0c;随着应用体…

设计模式之建造者模式BuilderPattern(七)

一、建造者模式 建造者模式&#xff08;Builder Pattern&#xff09;使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 二、代码实例 1、OrderItem类 Data&#xff1a;这是Lombok中提供的Ge…

可见性检测-unity掌握常见的可见性检测算法实现原理

Unity中的可见性检测算法是用来确定物体是否在相机的视野范围内&#xff0c;以便进行相应的渲染和优化。其中&#xff0c;最常用的可见性检测算法有两种&#xff1a;Frustum Culling&#xff08;视锥体剔除&#xff09;和Occlusion Culling&#xff08;遮挡剔除&#xff09;。 …

CocoaPods:iOS项目依赖管理的利器

CocoaPods&#xff1a;iOS项目依赖管理的利器 一、引言 在iOS项目的开发过程中&#xff0c;我们经常需要集成各种第三方库来快速实现某些功能&#xff0c;如网络请求、UI组件、数据处理等。然而&#xff0c;手动管理这些第三方库的版本、依赖和更新是一个繁琐且容易出错的过程…

HTTP 与 HTTPS 的区别

HTTP 与 HTTPS 的区别&#xff1f; HTTPHTTPS端口80443安全性无加密&#xff0c;安全性较差有加密机制&#xff0c;安全性较高资源消耗较少由于加密处理&#xff0c;资源消耗更多是否需要证书不需要需要协议运行在TCP协议之上运行在SSL协议之上&#xff0c;SSL运行在TCP协议之…

数据链路层(计算机网络)

0、前言 本文大多数图片都来自于 B站UP主&#xff1a;湖科大教书匠 的教学视频&#xff0c;对高军老师及其团队制作出这么优质的课程表示感谢。本文的撰写目的不是为了应试&#xff0c;且受限于个人水平&#xff0c;可能和标准答案有所出入&#xff0c;请自行甄别&#xff0c;…