Qt扫盲-QPlainTextEdit理论总结

news2024/11/20 18:46:07

QPlainTextEdit理论总结

  • 一、概述
  • 二、用途一:纯文本展示
    • 1. 用法
    • 2. 只读快捷键
  • 三、用途二:纯文本编辑器
    • 1. 用法
    • 2. 快捷键绑定
  • 四、与 QTextEdit 的不同

一、概述

QPlainTextEdit是一个只支持纯文本的高级查看器/编辑器。 它经过优化,可以处理大型文档,并快速响应用户输入。
QPlainText使用与QTextEdit 非常相同的技术和概念,很多都一样,但针对纯文本处理进行了优化。更适合纯文本从处理。

可以看看 Qt扫盲-QTextEdit理论总结 这个。

QPlainTextEdit适用于段落和字符。段落是一个格式化的字符串,它被word包裹以适应widget的宽度。默认情况下,读取纯文本时,一个换行符表示一个段落。一个文档由零个或多个段落组成。段落之间用硬线分隔。段落中的每个字符都有自己的属性,例如字体和颜色。

QPlainTextEdit上的鼠标光标的形状默认是Qt::IBeamCursor。可以通过viewport()的cursor属性来改变这个属性。

在这里插入图片描述

二、用途一:纯文本展示

1. 用法

使用setPlainText()设置或替换文本,它会删除现有的文本,并将其替换为传递给setPlainText()的文本。
可以使用QTextCursor类插入文本,也可以使用便捷的函数insertPlainText()、appendPlainText()或paste()。
默认情况下,文本编辑会在空白处包装单词,以适应文本编辑小部件。setLineWrapMode()函数用于指定你想要的换行类型,如果你不想要任何换行,可以指定WidgetWidth或NoWrap。如果将换行设置为窗口组件的宽度WidgetWidth,则可以使用setWordWrapMode()指定是否在空格处换行。
find()函数可用于在文本中查找和选择给定的字符串。
如果你想限制QPlainTextEdit中的总段落数,比如它在日志查看器中很有用,那么可以使用maximumBlockCount属性。setMaximumBlockCount()和appendPlainText()的组合使QPlainTextEdit成为一个高效的日志文本查看器。使用centerOnScroll()属性可以减少滚动,让日志查看器更快。可以用一种有限的方式格式化文本,要么使用语法高亮显示(见下文),要么使用appendHtml()追加html格式的文本。虽然QPlainTextEdit不支持复杂的富文本渲染表和浮动,但它支持有限的基于段落的格式,您可能需要在日志查看器。

2. 只读快捷键

键名含义
Up向上移动一行.
Down向下移动一行
Left向左移动一个字符
Right向右移动一个字符
PageUp向上移动一页 以 viewport 为准.
PageDown向下移动一页 以 viewport 为准.
Home移动到最开始的位置
End文档结尾位置
Alt+Wheel水平滚动文本
Ctrl+Wheel缩放文本.
Ctrl+A全选文本

三、用途二:纯文本编辑器

1. 用法

选择文本是由 QTextCursor 类处理的,它提供了创建选择文本、检索文本内容或删除选择文本的功能。使用 textCursor() 方法可以取得与用户可见的光标对应的对象。如果你想在QPlainTextEdit中设置一个选择,只需在QTextCursor对象上创建一个,然后使用 setCursor() 使该光标成为可见的光标。可以使用copy()将选区复制到剪贴板,也可以使用cut()将选区剪切到剪贴板。可以使用selectAll()选择整个文本。
QPlainTextEdit保存了一个 QTextDocument 对象,可以使用 document() 方法取得它。也可以使用 setDocument() 设置自己的document对象。如果文本发生变化,QTextDocument 会发出一个 textChanged() 信号,它还提供了一个 isModified() 函数,如果文本自加载以来或自最后一次调用 setModified 以 false 作为参数以来被修改,则返回true。此外,它还提供了undo和redo方法。

2. 快捷键绑定

含义
Backspace删除光标左边的字符.
Delete删除的字符向右光标。
Ctrl+C将选中的文本复制到剪贴板.
Ctrl+InsertCopy the selected text to the clipboard.
Ctrl+K删除的最后一行
Ctrl+V粘贴剪贴板的文本到文本编辑。
Shift+Insert粘贴剪贴板的文本到文本编辑。
Ctrl+X删除选中的文本,并将它复制到剪贴板.
Shift+Delete删除选中的文本,并将它复制到剪贴板.
Ctrl+Z撤销了最后一个操作.
Ctrl+Y恢复了最后一个操作.
Left移动光标向左一个字符。
Ctrl+Left向左移动光标一个词。
Right向右移动光标一个字符.
Ctrl+Right向右移动光标一个词.
Up移动光标一行。
Down移动光标一行。
PageUp移动光标向上一页。
PageDown移动光标一页向下一页
Home移动光标到一行的开始处。
Ctrl+Home移动光标到文本的开始。
End移动光标到行结束。
Ctrl+End移动光标到最后的文本.
Alt+Wheel水平滚动页面(wheel是鼠标滚轮).

要选择(标记)文本,请按住Shift键,同时按下一个移动键,例如,Shift+Right将选择右边的字符,Shift+Ctrl+Right将选择右边的单词,等等。

四、与 QTextEdit 的不同

QPlainTextEdit是一个很精简的类,通过使用QTextEdit和QTextDocument背后的大部分技术来实现。它比QTextEdit的性能优势主要来自于在文本文档上使用不同的和简化的文本布局QPlainTextDocumentLayout(参见QTextDocument::setDocumentLayout())。

纯文本文档布局不支持表格或嵌入的框架,用逐行逐段滚动的方法取代了精确到像素的高度计算。这使得处理明显更大的文档成为可能,并且仍然可以实时调整编辑器的大小并启用换行功能。它还提供了一个快速的日志查看器(参见setMaximumBlockCount())。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法

问题描述import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus]False使用matplotlib画图时,因为缺少字体,、图像上label上的中文显示时空白小方块。因为matplotlib默认没有中文。解决方法&#xff…

多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测

多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测 目录多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测预测效果基本介绍程序设计学习小结参考资…

城堡、游乐园、地下城!!!500+ 超棒 FBX 模型素材,全部都免费!

近期 Cocos 社区有好几位热心的开发者,整理了一些 CC0 协议 的游戏资源。如果你对 CC0 协议还不太了解,我找到一个中文版的协议说明,看下图:有几点比较重要:作者放弃著作权,已将作品贡献至公共领域可以复制…

【ROS】—— 机器人系统仿真 —RDF、Gazebo与Rviz综合应用(十六)

文章目录前言1. 机器人运动控制以及里程计信息显示1.1 ros_control 简介1.2 运动控制实现流程(Gazebo)1.2.1 为 joint 添加传动装置以及控制器1.2.2 xacro文件集成1.2.3 启动 gazebo并控制机器人运动2. 雷达信息仿真以及显示2.1 新建 Xacro 文件,配置雷达传感器信息…

C++STL之vector的模拟实现

由于vector和string的接口使用方法类似,这里便不再详细讲解vector各种接口的使用了,可以参考之前所发布的string的使用,或者从官方文档中获取详细的使用方法. 目录 vector介绍 构造函数(有参,无参,迭代器…

【14】Docker network | bridge | host | none | container

目录 1、Docker 运行的基本流程为: 2、Docker0 3、Docker默认的三种网络模式 4、Docker的网络命令 5、网络模式 6、实例: 7、bridge模式 8、host模式 9、none模式 10、container模式 11、自定义网络 1、Docker 运行的基本流程为: 1.用户是使用 Docker Clie…

UDS诊断系列介绍10-28服务

本文框架1. 系列介绍1.1 28服务概述2. 28服务请求与应答2.1 28服务请求2.2 28服务正响应2.3 否定应答3. Autosar系列文章快速链接1. 系列介绍 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊…

session利用的小思路

session利用的小思路 前言 做题的时候经常考到session利用,常见的基本就两种,session文件包含和session反序列化,之前没有详细总结过,就写写吧。 session文件包含 php.ini session的相关配置 session.upload_progress.enabl…

15、ThingsBoard-自定义阿里云SMS规则节点

1、概述 一个物联网平台承载着很多设备的连接,当设备出现异常的时候,能够快速的通知到运维管理员是非常重要的,thingsboard提供了自定义配置邮箱,但是它对支持发送短信的不是很友好,都是国外的sms服务商,我反正是不用那个,在国内常见就是阿里、腾讯、华为、七牛常用的s…

CORBA,Common Object Request Broker Architecture 简介

CORBA,Common Object Request Broker Architecture 简介 1. 简介 CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理体系结构)是由OMG组织(OMG组织是一个国际性的非盈利组织,其职责是为应…

【17】Docker | CAdvisor_InfluxDB_Granfana | 成功安装

目录 1、查看目前docker容器的状态 2、三大组件 【1】、CAdvisor 【2】、InfluxDB 【3】、Granfana 3、用docker-compose安装三个组件 4、三大组件的登录 【1】浏览cAdvisor收集服务,http://ip:8080 【2】浏览influxdb存储服务,http://ip:8083 …

python日志处理模块讲解-loguru

说明: 本篇文章主要讲的是python日志模块loguru详解,感兴趣的同学赶快来看一看吧。 背景: 在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会采用日志的方式来进行记录这些…

运放指标-压摆率SR

1. 压摆率SR 处理交流信号时,压摆率是运放器件重要的指标。其表示运放输出电压的转换速率。在高频信号时,若压摆率不够,则运放输出的信号会变形,导致不满足要求。其实际就是运放输出信号的分辨率,只有分辨率足…

机器学习中的数学基础(四):概率论

机器学习中的数学基础(四):概率论4 概率论4.1 一些概念4.2 二维随机变量4.2.1 离散型4.2.2 连续型4.3 边缘分布4.3.1 离散型边缘分布4.3.2 连续型边缘概率密度4.4 期望4.4.1 一维期望4.4.2 二维期望4.5 马尔可夫不等式4.6 切比雪夫不等式在看…

Vue2.0开发之——组件数据共享-Eventbus(39)

一 概述 兄弟组件之间数据共享的方案—EventBusEventBus的使用步骤EventBus的使用示例 二 兄弟组件之间数据共享的方案—EventBus 在 vue2.x 中,兄弟组件之间数据共享的方案是EventBus。 三 EventBus的使用步骤 创建 eventBus.js 模块,并向外共享一…

个人项目部署在云服务器上以及购买云服务器后如何操作

一. 购买云服务器后简单的操作1.镜像: 镜像可以认为是云服务器的操作系统,选择什么镜像云服务器就安装对应的操作系统。云服务器操作系统主要分为两大类,即Linux和Windows. 本次说明在linux操作系统下进行项目的部署, 那么在选择镜像的时可以选择Linux镜…

linux系统中利用QT实现串口通信的方法

大家好,今天主要和大家分享一下,如何使用QT中的串口通信方法。 目录 第一:资源简介 第二:应用实例的具体实现 第三:程序运行效果 第一:资源简介 在开发板的资源中出厂系统中,默认已经配置了两…

ASP.NET Core 3.1系列(27)——Autofac使用JSON、XML配置文件

1、前言 很多IoC框架都支持以配置文件的形式实现接口和类的注册,Autofac当然也不例外。本文就来介绍一下如何利用JSON、XML等配置文件来实现接口和类的注册。 2、定义接口和类 这里搭建了一个简单的分层项目,如下图所示: Repository层代码…

Verilog HDL

一、基础语法 1. 基础知识 (1)逻辑值 逻辑0:低电平。 逻辑1:高电平。 逻辑X:未知,可能是高电平,也可能是低电平。 逻辑Z:高阻态,外部没有激励信号,是一…

读书笔记《深度学习与图像识别原理与实践 大白话讲解对小白易懂》2022-8-5

开始 目录前言1. 常见深度学习框架2. 图像分类算法2.1 传统类2.2 机器学习2.2.1 人工神经网络(神经元)2.2.2 卷积神经网络3. 目标检测算法3.1 分类定位(单目标)3.2 分类定位(多目标,目标检测)3.…