当前位置: 首页 > news >正文

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

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

概述

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.lryc.cn/news/532745.html

相关文章:

  • IDEA中Resolving Maven dependencies卡着不动解决方案
  • go数据结构学习笔记
  • 【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)
  • Google地图瓦片爬虫——进阶版
  • 免费windows pdf编辑工具
  • 解锁C#数据校验:从基础到实战的进阶之路
  • Redis的通用命令
  • 设计模式六大原则和单例模式
  • Redis性能优化
  • SAM 大模型杂谈
  • openGauss 3.0 数据库在线实训课程2:学习客户端工具gsql的使用
  • B站自研的第二代视频连麦系统(上)
  • 【远程控制】安装虚拟显示器
  • 基于HAI部署DeepSeekR1的招标文书智能辅助生产开发与应用
  • 解决whisper 本地运行时GPU 利用率不高的问题
  • 模拟实战-用CompletableFuture优化远程RPC调用
  • 深入解析:Jsoup 库的多功能应用场景
  • Polardb三节点集群部署安装--附虚拟机
  • Redis - 全局ID生成器 RedisIdWorker
  • 【Vitest】单元测试
  • 达梦数据库从单主模式转换为主备模式
  • 【Elasticsearch】nested聚合
  • 虹科波形小课堂 | 三分钟掌握车辆相对压缩测试!不拆发动机、不测缸压就能判断故障缸!
  • 【玩转全栈】--创建一个自己的vue项目
  • 基于 Spring Cloud + Spring AI + VUE 的知识助理平台介绍以及问题
  • < 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析
  • 前端知识速记:重绘和回流
  • webrtc peerconnection_client peerconnection_server 连接失败问题解决 win10 win11
  • 【C++】STL——list的使用与底层实现
  • iOS 音频录制、播放与格式转换