- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
概述
在 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);