- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
[1. QLineEdit](#1. QLineEdit)
[1.1 特点](#1.1 特点)
[1.2 属性](#1.2 属性)
[1.3 常用方法](#1.3 常用方法)
[1.4 拓展应用](#1.4 拓展应用)
[2. QTextEdit](#2. QTextEdit)
[2.1 特点](#2.1 特点)
[2.2 属性](#2.2 属性)
[2.3 常用方法](#2.3 常用方法)
[2.4 拓展应用](#2.4 拓展应用)
[3. QPlainTextEdit](#3. QPlainTextEdit)
[3.1 特点](#3.1 特点)
[3.2 属性](#3.2 属性)
[3.3 常用方法](#3.3 常用方法)
概述
在 QT 中,文本编辑控件是用户界面设计中不可或缺的一部分。
QT 提供了多种文本编辑控件,包括 QLineEdit
、QTextEdit
和 QPlainTextEdit
,每种控件都有其特定的用途和功能。
1. QLineEdit
1.1 特点
QLineEdit
是一个单行文本输入控件,适用于输入和编辑短文本,如用户名、密码、搜索框等。以下是 QLineEdit
的主要特点:
-
单行文本输入 :
QLineEdit
只允许用户输入单行文本,不能处理多行文本。 -
文本编辑功能:支持剪切、复制、粘贴、撤销和重做等基本文本编辑操作。
-
输入限制:支持设置输入掩码(Input Mask)和限制输入字符,确保用户输入符合特定格式。
-
占位符文本:可以设置占位符文本(Placeholder Text),提示用户输入内容。
1.2 属性
-
text:控件当前的文本内容。
-
placeholderText:占位符文本,用于提示用户输入内容。
-
maxLength:最大输入字符数,限制用户输入的字符数量。
-
echoMode:文本显示模式,如普通文本、密码等。
-
readOnly :是否只读,设置为
true
时用户无法编辑文本。 -
alignment:文本对齐方式,如左对齐、右对齐、居中对齐。
-
clearButtonEnabled:是否启用清除按钮,方便用户快速清空输入内容。
-
frame:是否显示边框,控制控件的外观。
1.3 常用方法
-
text():返回当前文本内容。
QString currentText = lineEdit->text();
-
setText(const QString &text):设置文本内容。
lineEdit->setText("Hello, World!");
-
clear():清空文本内容。
lineEdit->clear();
-
setPlaceholderText(const QString &text):设置占位符文本。
lineEdit->setPlaceholderText("Enter your name");
-
cursorPosition():返回当前光标位置。
int position = lineEdit->cursorPosition();
-
setCursorPosition(int position):设置光标位置。
lineEdit->setCursorPosition(5);
-
setReadOnly(bool readOnly):设置控件是否只读。
lineEdit->setReadOnly(true);
-
setEchoMode(QLineEdit::EchoMode mode):设置文本显示模式(如密码模式)。
lineEdit->setEchoMode(QLineEdit::Password);
1.4 拓展应用
-
输入验证 :通过
QValidator
类,可以为QLineEdit
设置输入验证器,确保用户输入的内容符合特定格式。例如,限制用户只能输入数字或特定范围内的字符。 -
自动补全 :结合
QCompleter
类,可以实现输入自动补全功能,提升用户体验。
2. QTextEdit
2.1 特点
QTextEdit
是一个富文本编辑控件,适用于输入和编辑格式化文本,如文档编辑器、邮件编辑器等。以下是 QTextEdit
的主要特点:
-
多行文本输入:支持多行文本输入,适合处理较长的文本内容。
-
富文本格式:支持复杂的文本格式,如粗体、斜体、下划线、字体颜色等。
-
插入富文本元素:支持插入图像、表格和其他富文本元素。
-
HTML 和 RTF 支持:可以通过 HTML 或者富文本格式(Rich Text Format, RTF)来设置和获取内容。
2.2 属性
-
html:HTML 格式的文本内容。
-
readOnly:是否只读。
-
acceptRichText:是否接受富文本。
-
textInteractionFlags:文本交互标志,控制文本的选择、编辑、拖放等行为。
2.3 常用方法
-
toPlainText():返回纯文本内容。
QString plainText = textEdit->toPlainText();
-
setPlainText(const QString &text):设置纯文本内容。
textEdit->setPlainText("This is a plain text.");
-
setHtml(const QString &html):设置 HTML 格式的文本内容。
textEdit->setHtml("<b>Hello</b>, <i>World!</i>");
-
append(const QString &text):在文本末尾追加内容。
textEdit->append("New line of text.");
2.4 拓展应用
-
文本格式化 :通过
QTextCursor
类,可以对文本进行更精细的格式化操作,如设置字体、颜色、段落格式等。 -
文档处理 :结合
QTextDocument
类,可以实现更复杂的文档处理功能,如分页、段落样式、表格处理等。
3. QPlainTextEdit
3.1 特点
QPlainTextEdit
是一个纯文本编辑控件,适用于输入和编辑没有格式的纯文本,如日志查看器、代码编辑器等。以下是 QPlainTextEdit
的主要特点:
-
多行文本输入:支持多行文本输入,适合处理较长的文本内容。
-
纯文本格式:不支持富文本格式,仅能处理纯文本。
-
高效性能:提供了高效的文本操作和显示性能,适合处理大量文本。
-
行号显示:支持行号显示和行号索引,方便代码编辑和调试。
3.2 属性
-
plainText:纯文本内容。
-
readOnly:是否只读。
-
lineWrapMode:自动换行模式,如不换行、单词换行、字符换行等。
-
textInteractionFlags:文本交互标志,控制文本的选择、编辑、拖放等行为。
3.3 常用方法
-
toPlainText():返回纯文本内容。
QString plainText = plainTextEdit->toPlainText();
-
setPlainText(const QString &text):设置纯文本内容。
plainTextEdit->setPlainText("This is a plain text.");
-
appendPlainText(const QString &text):在文本末尾追加内容。
plainTextEdit->appendPlainText("New line of text.");
-
setLineWrapMode(QPlainTextEdit::LineWrapMode mode):设置自动换行模式。
plainTextEdit->setLineWrapMode(QPlainTextEdit::WidgetWidth);