Windows图形界面(GUI)-QT-C/C++ - QT 文本编辑控件详解

ops/2025/2/10 9:38:05/
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

概述

1. QLineEdit

1.1 特点

1.2 属性

1.3 常用方法

1.4 拓展应用

2. QTextEdit

2.1 特点

2.2 属性

2.3 常用方法

2.4 拓展应用

3. QPlainTextEdit

3.1 特点

3.2 属性

3.3 常用方法


概述

在 QT 中,文本编辑控件是用户界面设计中不可或缺的一部分。

QT 提供了多种文本编辑控件,包括 QLineEditQTextEdit 和 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);

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

相关文章

从零开始学Docker(一)-镜像列表访问不到问题

最近在安装docker时碰到centos的归档问题&#xff0c;错误信息如下&#xff0c;以下列出了可行的解决方案&#xff1a; 错误信息 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorli…

【C/C++】每日温度 [ 栈的应用 ] 蓝桥杯/ACM备赛

数据结构考点&#xff1a;栈 题目描述&#xff1a; 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0…

Visual Studio(VS)初始配置环境(scanf异常)

发现问题 当我们第一次安装Visual Studio&#xff08;VS&#xff09;且没有初次环境配置时&#xff0c;用某些函数时会发现报错异常。&#xff08;如下scanf函数为例&#xff09; #include<stdio.h>int main() {int a 0;scanf("%d", &a);printf("%…

【北上广深杭大厂编程面试题】C++篇...这里介绍堆区和栈区的区别?(二)

【北上广深杭大厂编程面试题】C篇…这里介绍堆区和栈区的区别&#xff1f;&#xff08;二&#xff09; 【北上广深杭大厂编程面试题】C篇…这里介绍堆区和栈区的区别&#xff1f;&#xff08;二&#xff09; 文章目录 【北上广深杭大厂编程面试题】C篇...这里介绍堆区和栈区的…

DeepSeek使用技巧大全(含本地部署教程)

在人工智能技术日新月异的今天&#xff0c;DeepSeek 作为一款极具创新性和实用性的 AI&#xff0c;在众多同类产品中崭露头角&#xff0c;凭借其卓越的性能和丰富的功能&#xff0c;吸引了大量用户的关注。 DeepSeek 是一款由国内顶尖团队研发的人工智能&#xff0c;它基于先进…

51单片机独立按键的扩展应用

提示&#xff1a; 按键S7和S6为选择键&#xff0c;确定控制键控制那组LED指示灯。按键S5和S4为控制键&#xff0c;按键该键点亮指定的LED指示灯&#xff0c;松开后熄灭。按下S7点亮L1指示灯&#xff0c;L1点亮后&#xff0c;S6不响应操作&#xff0c;S5控制L3&#xff0c;S4控…

Go 中的 7 个常见接口错误

Go 仍然是一门新语言,如果你正在使用它,它很可能不是你的第一门编程语言。 不同的语言,既为你带来了经验,也带来了偏见。你用以前的任何语言做的事情,在 Go 中用相同的方法可能不是一个好主意。 学习 Go 不仅仅是学习一种新的语法。这也是学习一种新的思维方式来思考你的…

postgresql 游标(cursor)的使用

概述 PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标&#xff0c;因为一次性处理可能造成内存溢出。 另外我们可以定义函数返回游标类型变量&#xff0c;这是函数返回大数据集的有效方式&#xff0c;函数调用者…