Qt QLineEdit详解

2024-04-29 22:20
文章标签 详解 qt qlineedit

本文主要是介绍Qt QLineEdit详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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博客

这篇关于Qt QLineEdit详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/947300

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是