当前位置: 首页 > 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);

相关文章:

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…...

IDEA中Resolving Maven dependencies卡着不动解决方案

一、修改settings.xml Maven配置阿里云仓库主要通过修改Maven的settings.xml文件来实现‌。以下是具体步骤: ‌1、找到settings.xml文件‌: 通常位于Maven安装目录下的conf文件夹中,或者在用户目录下的.m2文件夹中(如果用户自定义了settings.xml的位置)。 2、‌编辑se…...

go数据结构学习笔记

本博文较为完整的实现了go的链表、栈&#xff0c;队列&#xff0c;树&#xff0c;排序&#xff0c;链表包括顺序链表&#xff0c;双向链表&#xff0c;循环链表&#xff0c;队列是循环队列&#xff0c;排序包含冒牌、选择 1.链表 1.1 顺序链表 type LNode struct {data intn…...

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)

【后端开发】系统设计101——Devops&#xff0c;Git与CICD&#xff0c;云服务与云原生&#xff0c;Linux&#xff0c;安全性&#xff0c;案例研究&#xff08;30张图详解&#xff09; 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么&#xff1f;什么是k8s&#xff08;Ku…...

Google地图瓦片爬虫——进阶版

紧接上一篇——Google地图瓦片爬虫 clash节点自动切换 为了防止一个IP地址访问频率过快问题&#xff0c;自动切换clash的节点 def change_node(is_stop):while True:_r requests.get("http://127.0.0.1:11053/proxies", headersclash_headers, verifyFalse)# 这里…...

免费windows pdf编辑工具

Epdf&#xff08;完全免费&#xff09; 作者&#xff1a;不染心 时间&#xff1a;2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器&#xff0c;目前仍在开发中。它提供了一系列实用的命令行选项&#xff0c;方便用户对 PDF …...

解锁C#数据校验:从基础到实战的进阶之路

一、引言&#xff1a;数据校验为何如此重要&#xff1f; 在软件开发的广袤领域中&#xff0c;数据校验宛如一座坚固的堡垒&#xff0c;守护着系统的稳定与安全。它是确保数据质量的关键防线&#xff0c;能有效避免错误数据的流入&#xff0c;进而提升系统的整体性能和可靠性。…...

Redis的通用命令

⭐️前言⭐️ 本文主要介绍Redis的通用命令 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主日常练习代码均已上传GitHub &#x1f4cd;内容导…...

设计模式六大原则和单例模式

设计模式 目的 实现可重用解决方案&#xff0c;构筑易维护、可扩展的软件系统。 六大原则 单一职责&#xff1a; 类的职责单一&#xff0c;一个方法做一件事。 开闭原则&#xff1a; 拓展开放&#xff0c;修改关闭。 里氏替换&#xff1a; 父类能出现的地方&#xff0c;子…...

Redis性能优化

1.是否使用复杂度过高的命令 首先&#xff0c;第一步&#xff0c;你需要去查看一下 Redis 的慢日志&#xff08;slowlog&#xff09;。 Redis 提供了慢日志命令的统计功能&#xff0c;它记录了有哪些命令在执行时耗时比较久。 查看 Redis 慢日志之前&#xff0c;你需要设置慢…...

SAM 大模型杂谈

目录 1. 前言 2. 发展历程 3. SAM 大模型的技术架构 3.1 模型结构 3.2 训练方法 3.3 数据处理 4. SAM 大模型的应用领域 4.1 自然语言处理 4.2 计算机视觉 4.3 多模态学习 4.4 其他领域 5. SAM 大模型的优势与挑战 5.1 优势 5.2 挑战 6. SAM 大模型的未来发展方…...

openGauss 3.0 数据库在线实训课程2:学习客户端工具gsql的使用

openGauss数据库状态查看 前提 我正在参加21天养成好习惯| 第二届openGauss每日一练活动 课程详见&#xff1a;openGauss 3.0.0数据库在线实训课程 学习目标 学习openGauss数据库客户端工具gsql的使用。 课程作业 gsql是openGauss提供在命令行下运行的数据库连接工具&am…...

B站自研的第二代视频连麦系统(上)

导读 本系列文章将从客户端、服务器以及音视频编码优化三个层面&#xff0c;介绍如何基于WebRTC构建视频连麦系统。希望通过这一系列的讲解&#xff0c;帮助开发者更全面地了解 WebRTC 的核心技术与实践应用。 背景 在文章《B站在实时音视频技术领域的探索与实践》中&#xff…...

【远程控制】安装虚拟显示器

todesk远程发现没显示器的机器有问题 电脑如果不外接一个显示器那么会默认为1024 768 分辨率需要安装虚拟显示器参考 竟然是一个隐私屏幕的解决方案。 虚拟显示器 Parsec-vdd 项目地址 Parsec-vdd 最大的优点是&#xff1a;支持 4K 高刷、可添加多个虚拟屏、 H-Cursor&#…...

基于HAI部署DeepSeekR1的招标文书智能辅助生产开发与应用

一、前言 1.1行业背景 在日常商业活动中&#xff0c;招投标流程往往是企业竞标和项目落地的关键一环。其中&#xff0c;招标文书的编写工作对于投标企业极具挑战&#xff1a;既要保证逻辑清晰、条理分明&#xff0c;又必须遵循招标机构的各类格式规范&#xff0c;甚至还有特定…...

解决whisper 本地运行时GPU 利用率不高的问题

我在windows 环境下本地运行whisper 模型&#xff0c;使用的是nivdia RTX4070 显卡&#xff0c;结果发现GPU 的利用率只有2% 。使用 import torch print(torch.cuda.is_available()) 返回TRUE。表示我的cuda 是可用的。 最后在github 的下列网页上找到了问题 极低的 GPU 利…...

模拟实战-用CompletableFuture优化远程RPC调用

实战场景 这是广州某500-900人互联网厂的面试原题 手写并发优化解决思路 我们要调用对方的RPC接口&#xff0c;我们的RPC接口每调用一次对方都会阻塞50ms 但是我们的业务要批量调用RPC&#xff0c;例如我们要批量调用1k次&#xff0c;我们不可能在for循环里面写1k次远程调用…...

深入解析:Jsoup 库的多功能应用场景

Jsoup 是一个强大的 Java 库&#xff0c;主要用于解析和操作 HTML 文档。它不仅广泛应用于网络爬虫和数据抓取&#xff0c;还在网页内容分析、数据清洗与处理、自动化测试等多个领域有着广泛的应用。本文将详细介绍 Jsoup 库的多种用途&#xff0c;并提供具体的代码示例。 一、…...

Polardb三节点集群部署安装--附虚拟机

1. 架构 PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计&#xff0c;系统由4个核心组件组成。 计算节点&#xff08;CN, Compute Node&#xff09; 计算节点是系统的入口&#xff0c;采用无状态设计&#xff0c;包括 SQL 解析器、优化器、执行器等模块。负责数据…...

Redis - 全局ID生成器 RedisIdWorker

文章目录 Redis - 全局ID生成器 RedisIdWorker一、引言二、实现原理三、代码实现代码说明 四、使用示例示例说明 五、总结 Redis - 全局ID生成器 RedisIdWorker 一、引言 在分布式系统中&#xff0c;生成全局唯一ID是一个常见的需求。传统的自增ID生成方式在分布式环境下容易出…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...