QLineEdit 详解(C++)
QLineEdit 是 Qt 框架中用于单行文本输入的核心控件,广泛应用于表单输入、搜索框、命令行交互等场景。它提供了丰富的文本处理功能、输入验证机制和交互特性,是 Qt 界面开发中不可或缺的组件。本文将从基础用法、高级特性、信号与槽、输入验证、样式定制等方面全面解析 QLineEdit 的使用方法。
一、基础用法
-
创建与初始化
在 C++ 中使用 QLineEdit 需包含头文件<QLineEdit>,并通过构造函数创建实例。基本语法如下:#include <QLineEdit> // 构造函数:父对象指针可选,用于内存管理 QLineEdit *lineEdit = new QLineEdit(parent);可通过构造函数直接设置初始文本:
QLineEdit *lineEdit = new QLineEdit("初始文本", parent); -
文本设置与获取
- 设置文本:
setText(const QString &text)lineEdit->setText("Hello Qt"); - 获取文本:
QString text() constQString input = lineEdit->text(); - 追加文本:
insert(const QString &text)(在光标位置插入)lineEdit->insert(" World"); // 原文本为"Hello"时,结果为"Hello World"
- 设置文本:
-
基本属性控制
- 只读模式:
setReadOnly(bool)lineEdit->setReadOnly(true); // 文本可选中但不可编辑 - 清空文本:
clear()lineEdit->clear(); - 占位提示文本:
setPlaceholderText(const QString &text)(未输入时显示灰色提示)lineEdit->setPlaceholderText("请输入用户名"); - 最大长度限制:
setMaxLength(int length)lineEdit->setMaxLength(20); // 最多输入20个字符
- 只读模式:
二、输入模式与显示格式
QLineEdit 支持多种输入模式,通过 setEchoMode(EchoMode mode) 控制文本显示方式,适用于密码输入等场景:
QLineEdit::Normal:默认模式,输入即显示(如普通文本)。QLineEdit::Password:输入字符显示为占位符(如•),实际文本可通过text()获取。QLineEdit::PasswordEchoOnEdit:输入时显示明文,失去焦点后转为密码模式。QLineEdit::NoEcho:不显示任何输入(如敏感信息)。
示例:
// 密码输入框
QLineEdit *passwordEdit = new QLineEdit(parent);
passwordEdit->setEchoMode(QLineEdit::Password);
passwordEdit->setPlaceholderText