QT学习 控件(三)输入文本类与快捷键:QPlainText;QKeySequenceEdit

news2024/12/26 22:58:26

文章目录

  • QPlainText
  • QKeySequenceEdit

前情回顾:
QLineEit QTextEdit文本输入类

QPlainTextEdit是一个简略版本的类,它的性能优于QTextEdit, 主要是因为在文本文档中使用QPlainTextDocumentLayout简化文本布局

QPlainText

QPlainText和QTextEdit大致功能实现差不多

构造函数:

 QPlainTextEdit(const QString &text, QWidget *parent = nullptr)
 QPlainTextEdit(QWidget *parent = nullptr)

基本功能:

设置初始占位字符

ptext->setPlaceholderText("请输入200字以内检讨");

设置只读

ptext->setReadOnly(true);

设置输入文本格式

//设置文本的格式
QTextCharFormat tcf;
tcf.setAnchor(Qt::red);
tcf.setFontUnderline(Qt::blue);
tcf.setBackground(QBrush(Qt::yellow));

//插入格式
ptext->setCurrentCharFormat(tcf);
qInfo()<<ptext->currentCharFormat();

在这里插入图片描述

软换行:

 ptext->setLineWrapMode(QPlainTextEdit::LineWrapMode::WidgetWidth);

没有软换行
QPlainTextEdit.NoWrap

超出控件宽度进行自动换行
QPlainTextEdit.WidgetWidth


输入操作:

setPlainText(text_str)
	设置普通文本内容
insertPlainText(text_str)
	插入普通文本
appendPlainText(text_str)
	追加普通文本
appendHtml(html_str)
	追加HTML字符串
	注意有些标签不支持
			表格
			列表
			图片
			...
		
toPlainText() -> 转换成纯文本

快数量;

blockCount() -> int
	当前块个数
maximumBlockCount() -> int
	最大块个数
setMaximumBlockCount(int)
	设置最大块个数

编辑操作:

API
	selectAll()
		选中所有
	copy()
		复制选中文本
	cut()
		剪切选中文本
	paste()
		粘贴文本
		canPaste() -> bool
			判定是否可以粘贴
	clear()
		清空内容
	redo()
		重做
		isUndoRedoEnabled() -> bool
			判定撤销重做是否可用
		setUndoRedoEnabled(bool)
			设置撤销重做是否可用
	undo()
		撤销
	find(str, QTextDocument.FindFlags) -> bool
		QTextDocument.FindBackward
			向后搜索而不是向前搜索。
		QTextDocument.FindCaseSensitively
			默认情况下,查找工作区不区分大小写。
			指定此选项会将行为更改为区分大小写的查找操作。
		QTextDocument.FindWholeWords
			使查找匹配仅完整的单词。
	zoomIn(int range = 1)
		放大缩小
			range > 0
				放大
			range < 0
				缩小

信号:

信号
	textChanged()
		文本改变时
	selectionChanged()
		选中内容改变时
	modificationChanged(bool)
		编辑状态改变时
	cursorPositionChanged()
		光标位置改变时
	blockCountChanged(int)
		块的个数发生改变时
	updateRequest(QRect rect, int dy)
		内容更新请求时
	copyAvailable(bool)
		复制可用时
	redoAvailable(bool)
		重做可用时
	undoAvailable(bool)
		撤销可用时

QKeySequenceEdit

QKeySequenceEdit是一个用于设计快捷键的类,当控件收到焦点时开始录制快捷键的按键情况,并在用户释放最后一个关键字后一秒钟结束录制,这个类通常与 快捷键的响应类一起使用:QShortcut

构造函数:
接受一个父窗口,同时可以直接传递一个默认的快捷键:使用:QKeySequence(“Ctrl+P”) 可以创建一个快捷键。

QKeySequenceEdit(const QKeySequence &keySequence, QWidget *parent = nullptr)
QKeySequenceEdit(QWidget *parent = nullptr)

样式显示:
在这里插入图片描述
获取快捷键的键值信息:

keyseq->keySequence();

手动设置创建快捷键

setKeySequence(QKeySequence keySequence)

QKeySequence类用来描述标准键位序列,里面提供了许多的标准键位供我们设置QKeySequenceEdit的快捷键消息。
例如:

QKeySequence::StandardKey::SelectAll 表示全选键: Ctrl + A

快捷键连接消息:
使用QShortcut

 //通过QShortcut来处理按键的消息
QShortcut* sc=new QShortcut(this);
sc->setKey(QKeySequence("Ctrl+Shift+F"));

//通过信号处理 连接一个信号与槽
connect(sc,&QShortcut::activated,this,&Widget::TestKeyCtrlShifF);

//快捷处理
new QShortcut(QKeySequence::StandardKey::SelectAll,this,[]()
{
    qInfo()<<"SelectAll";
});

当我们往QKeySequenceEdit输入快捷键时(本例为Ctrl+Shift+F),就会激活QShortcut的activated的信号,表示快捷键激活,然后就会传递一个信号供槽函数接受。

当然不必每次都使用setkey来指定接受的快捷键,还可以直接 直接在创建QShortcut对象时直接进行连接快捷键,如下面的操作。

sc->setKey(QKeySequence("Ctrl+Shift+F"));

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

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

相关文章

Dijkstra求最短路(堆优化)

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c;所有边权均为非负值。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果无法从1 号点走到 n 号点&#xff0c;则输出 −1。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整…

力扣刷题记录——205.同构字符串、217. 存在重复元素、283. 移动零

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《205.同构字符串、217. 存在重复元素、283. 移动零》。 目…

(十四)大白话磁盘文件中, 40个bit位的数据头以及真实数据是如何存储的?

文章目录 1、前情回顾2、详解40个bit位数据头1、前情回顾 之前我们已经给大家讲到了在磁盘上存储数据的时候, 每一行数据都会有变长字段长度列表,逆序存放这行数据里的变长字段的长度,然后会有NULL值列表,对于允许为NULL的字段都会有一个bit位标识那个字段是否为NULL,也是…

shell第五天作业——函数与数组

题目 一、编写函数&#xff0c;实现打印绿色OK和红色FAILED 二、编写函数&#xff0c;实现判断是否有位置参数&#xff0c;如无参数&#xff0c;提示错误 三、编写函数实现两个数字做为参数&#xff0c;返回最大值 四、编写函数&#xff0c;实现两个整数为参数&#xff0c;…

状态压缩DP——最短Hamilton路径

状态压缩DP——最短Hamilton路径一、题目描述二、思路分析1、状态转移方程&#xff08;1&#xff09;状态表示——状态压缩&#xff08;2&#xff09;状态转移2、循环和初始化&#xff08;1&#xff09;循环设计&#xff08;2&#xff09;初始化三、代码实现一、题目描述 二、思…

(day1)自学java基础

非原创&#xff0c;记录学习过程&#xff0c;为方便自己后期复习 目录 1.Java基础概念 2.运算符 3.判断 4.循环 5.循环高级 6.数组 7.数组的内存图 8.方法 ctrlaltL 自动格式化代码 为什么要配置环境变量&#xff1f; 我们想在任意目录都可以打开指定软件&#xff0c;就…

DDR3 数据传输(四)

目录 引言 AXI从侧接口参数 AXI从侧接口信号 参考说明 引言 前文链接&#x

巧用网络指数

哈喽&#xff0c;好久不见&#xff01;今天我们来一起聊聊网络指数。网络指数平台是以网民在线使用行为数据为基础&#xff0c;借助关键词表达的重要信息检索渠道&#xff0c;一定程度上可以反映某一话题的关注度&#xff0c;也可以帮助我们抓住所谓的“热点”。这里&#xff0…

源码编译mindspore,利用云服务器与wsl

文章目录tmux的使用利用WSL2设置交换空间通过编译产生的output安装tmux的使用 参考&#xff1a;https://blog.csdn.net/weixin_43922901/article/details/89230499 参考&#xff1a;http://www.ruanyifeng.com/blog/2019/10/tmux.html tmux用于远程编译&#xff0c;开启一个会…

2023第一天,给你们展示一下用Python实现自动答题

前言 python实现自动答题&#xff1f; 别管&#xff0c;我这就给你们展示一下 &#xff08;效果图看不了 不知道为什么说我违gui&#xff09;&#x1f625; 话不多说&#xff0c;咱就直接看代码吧 代码 准备模块 import requests import parsel from selenium import webd…

create-vite 源码解析它来喽

create-vite的源码很简单&#xff0c;只有一个文件&#xff0c;代码总行数400左右&#xff0c;但是实际需要阅读的代码大约只有200行左右&#xff0c;废话不多说&#xff0c;直接开始吧。 代码结构 create-vite的代码结构非常简单&#xff0c;直接将index.ts拉到最底下&#…

项目学习--谷粒商城

1. 微服务搭建 本地安装虚拟机&#xff0c;静态IP划分和docker的使用微服务功能模块介绍以及业务模块划分与抽取 2. 前端搭建 3. 后端业务代码完善 云储存OSS的整合与使用JSR303校验以及自定义分组校验 4. Elasticsearch学习 Elasticsearch的基础使用Elasticsearch字段ma…

volatile 详解

1. 前言 在并发编程的过程中&#xff0c;volatile属性非常重要。首先我们要了解并发编程的三大特性&#xff1a;可见性, 有序性, 原子性而我们今天的了解的volatile 就牵扯到可见性, 有序性。同时我也会从个人了解的角度给大家分析下&#xff0c;如果有什么不对的地方也希望大家…

物联网与射频识别技术,课程实验(一)

目录 &#xff08;1&#xff09;communication.py &#xff08;2&#xff09;Reader.py &#xff08;3&#xff09;Tag.py 实验1—— EPC C1G2标准下的标签状态转换仿真 实验说明&#xff1a; 利用Python或Matlab模拟C1G2标签的状态转换模型&#xff1b; 程序应能显示标签…

深度学习:01 神经网络与激活函数

目前&#xff0c;最广泛使用的定义是Kohonen于1988年的描述&#xff1a; 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络&#xff0c;它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。 目录 对神经网络的概述 神经网络的表示 激活函数 为什么激…

2022年总结:从初二学生到算法作者的蜕变之路

目录 一年的创作历程 我和 CSDN 在编程竞赛的合作 About CBC 技术社区的发展 夜跑奇遇 About 博客之星 新年致谢 元旦祝福 一年的创作历程 2022年&#xff0c;这一年对于我来说是十分重要的一年。在这一年里&#xff0c;我作为一名初二在校学生&#xff0c;在CSDN上发布…

【Linux 环境变量】环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数

1.问题&#xff1a;为什么自己写的程序需要加上./才能执行&#xff0c;但是指令可以直接使用&#xff0c;例&#xff1a;ls -al&#xff1f; 因为&#xff1a;不加"./"执行程序的时候会按环境变量PATH里面的各个路径找到就正常执行&#xff0c;找不到就报错&#xff…

SQL笔试题总结

文章目录前言一、列转行题目&#xff1a;将表Student转化为下面的形式展示先放答案逐步剖析二、row_number() over() 的使用题目&#xff1a;统计订单交易表&#xff08;orders&#xff09;每个商品交易金额最高的那一条数据先放答案逐步剖析三、逐行累加题目&#xff1a;还是订…

✿✿✿JavaScript --- jQuery框架二

目 录 1.高级事件 (1)浏览器一打开自动触发我们绑定的事件 (2) Trigger 传递数据 (3)自定义事件 (4)trigger 简写方案 (5)triggerHandler() (6)trigger和triggerHandler的区别 (7)on off one 2.动画 (1)显示 隐藏 动画 (2)队列动画 (3)下滑 上卷 (4)淡入淡出…

Nacos启动出现Error creating bean with name ‘memoryMonitor‘ 、‘externalDumpService‘

目录 &#x1f9e1;问题 &#x1f9e1;解决方法 &#x1f49f;这里是CS大白话专场&#xff0c;让枯燥的学习变得有趣&#xff01; &#x1f49f;没有对象不要怕&#xff0c;我们new一个出来&#xff0c;每天对ta说不尽情话&#xff01; &#x1f49f;好记性不如烂键盘&#x…