QTextDocument的使用方法及几种初始化方式

这篇具有很好参考价值的文章主要介绍了QTextDocument的使用方法及几种初始化方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、使用条件

qtextDocument并不像控件一样可以通过拖拽方式拉到设计器中使用,也不能直接声明就可以初始化使用,而是需要通过包涵库文件的方式包涵在当前的窗体文件中。
如:

#include <QWidget>
#include <QTextDocument>

上面说了Qtextdocument并不是控件,它是辅助配合QT中的文本编辑控件进行文本操作的类库。

二、初始化

QTextDocument在使用之前必须要实例化或者叫做初始化,通过实例化才能使用它,常见的实例化可以有四种形式。

1、最常见的方式为

凭空造了一个空的qtextdocument,后面再对其进行设置

 QTextDocument doc;      

当然,这样的初始化不会和控件具体配合使用,而往往会和painter来配合使用,如:

	QTextDocument doc;  
	doc.setIndentWidth(10); //缩进设置
    doc.setTextWidth(271); // 若不调用此句,则水平方向的对齐设置会被忽略;
    doc.setHtml("hello world!")//QTextDocument的背后就html,这里是文本的来源接口
    QPainter painter(this);
    painter.setBrush( palette().background() );
    painter.translate( 0.5, 0.5 );
    painter.translate(100, 20 );
    painter.rotate(30);
    doc.drawContents( &painter );//在默认区域绘制doc.setHtml()接口输入进来的内容如:“hello world!”

关于painter的内容,我在前面的博文中有详细的介绍,大家可以翻阅参考。
当然,大家不要误解了,不是说Qtextdocument的作用就是通过painter来绘制,它更多的应用在配合文本编辑控件如TextEdit或者PlainTextEdit来使用,往往在初始化Qtextdocument就会和他们进行绑定。

2、通过文本编辑类空间获得

这里是直接通过plainTextEdit或者textEdit获取,但必须用指针的形式来接收

 QTextDocument *qtd=ui->plainTextEditor->document(); //和控件plainTextEditor进行绑定

3、利用构造函数获取

利用构造函数获取后,再利用文本编辑控件的setDocument函数设置来使用

QTextDocument *doc = new QTextDocument(this);
ui->textEdit->setDocument(doc);  // 和控件textedit进行绑定

4、利用QTextCursor的实例来获得

这里通过文本编辑器的游标来获取(关于文本游标我们前面有专门的博文),QT中为每个文本编辑控件都提供了文本游标QTextCursor,便于我们通过代码对所操作文本精确控制。

QTextCursor cursor = ui->textEditor->textCursor();
QTextDocument *doc=cursor.document()//通过cursor获取

三、QTextDocument常规操作

这里我们可以把QTextDocument 理解为一个容器,QTextDocument 就是承载文本的字符串的容器,只不过这些字符串是以html代码的方式存储的。

1、格式设置

默认格式设置:

 doc->setDefaultStyleSheet("<span>");

2、添加内容

添加内容我们前面说了,是通过 setHtml(),如:

 QTextDocument *doc=new QTextDocument(this);
 doc.setHtml("hello world!")

3、删除

假定,我们的QTextDocument 中已经有内容,我们想清除掉,我们可以使用clear()来实现。

 QTextDocument *doc=new QTextDocument(this);
 doc.setHtml("hello world!")
 doc->clear();

4、多个QTextDocument 的操作

既然他们是容器,也就可以对多个QTextDocument 进行合并,即将一个QTextDocument 的内容放入另一QTextDocument 中。如下代码:

QTextDocument *doc1=new QTextDocument(this);
QTextDocument *doc2=new QTextDocument(this);
 doc1.setHtml("the first doc");
 doc2.setHtml("the second doc");
 doc1->setHtml(doc2->toPlainText()+doc1->toPlainText());

是不是感觉有点像字符串的拼接?其实它的使用还是比较方便的。文章来源地址https://www.toymoban.com/news/detail-492983.html

到了这里,关于QTextDocument的使用方法及几种初始化方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 查看内存使用情况的几种方法

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA 在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。 那么今天我们就来看看有哪些方法可以访问所有相关信息

    2023年04月20日
    浏览(32)
  • 分享Linux 查看内存使用情况的几种方法

    Linux 查看内存使用情况的几种方法包括使用 free 命令、top 命令、htop 命令、vmstat 命令和/proc/meminfo 文件。这些方法可以帮助用户了解系统内存的使用情况,包括总内存、已用内存、空闲内存、缓存和交换分区等信息。 在运行 Linux 系统的过程中为了让电脑或者服务器以最

    2024年02月04日
    浏览(36)
  • 使用html网页播放多个视频的几种方法

            因为项目测试需要,我需要可以快速知道自己推流的多路视频流质量,于是我想到可以使用html网页来播放视频,实现效果极其简单,方法有好几种,以下是几种记录:         注意 :测试过,VLC需要使用360急速浏览器,于是以下都是基于360急速浏览器测试的: vi

    2024年04月28日
    浏览(31)
  • 使用JavaScript关闭浏览器窗口的几种方法

    在Web开发中,有时候我们需要通过JavaScript来控制用户的浏览器行为,其中之一就是关闭浏览器窗口。本文将介绍几种使用JavaScript关闭浏览器窗口的方法,并提供相应的源代码示例。 使用window.close方法关闭窗口 要关闭当前窗口,可以使用window.close方法。这个方法会关闭当前浏

    2024年02月04日
    浏览(41)
  • 使用python判断字母大小写的几种方法

    使用Python中的内置函数 isupper() 和 islower() 来判断一个字母是否为大写或小写字母。 用户输入一个字母,程序使用isupper()和islower()函数判断字母是否为大写或小写,并输出相应的信息。如果用户输入了除字母以外的字符,程序会输出一个错误信息。 使用ASCII码值来判断字母大

    2024年02月04日
    浏览(42)
  • SVG 在前端的7种使用方法,你还知道哪几种?

    点赞 + 关注 + 收藏 = 学会了 技术一直在演变,在网页中使用 SVG 的方法也层出不穷。每个时期都有对应的最优解。 所以我打算把我知道的 7种 SVG 的使用方法列举出来,有备无患~ 如果你还知道其他方法,可以在评论区补充~ ```svg ``` xml 是浏览器能读取的格式,但如果希望 sv

    2024年02月06日
    浏览(37)
  • 一文教会你Linux 查看内存使用情况的几种方法

    在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。 那么今天我们就来看看有哪些方法可以访问所有相关信息并帮助管理员监控内存统计信息。 查看或者获取 Linux 中的内存使用情况既可以通过命令的方式,也可以通过桌面端的GU

    2024年02月10日
    浏览(36)
  • 【linux】Linux 查看内存使用情况的几种方法汇总

    Linux 查看内存使用情况的几种方法包括使用 free 命令、top 命令、htop 命令、vmstat 命令和/proc/meminfo 文件。这些方法可以帮助用户了解系统内存的使用情况,包括总内存、已用内存、空闲内存、缓存和交换分区等信息。 在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水

    2024年02月04日
    浏览(33)
  • 几种预训练模型微调方法和peft包的使用介绍

    现流行的微调方法有:Lora,prompt,p-tunning v1,p-tunning v2,prefix,adapter等等,下面抱着学习的心态进行宏观层面的介绍 如有错误,欢迎指出 LoRA(Low-Rank Adaptation)是一种技术,通过低秩分解将权重更新表示为两个较小的矩阵(称为更新矩阵),从而加速大型模型的微调,并减少内存

    2024年02月07日
    浏览(32)
  • nodejs处理图片的几种方法,使用sharp,jimp,webconvert

    Sharp是一款快速高效的Node.js图片处理库,支持图片格式转换、尺寸调整、压缩、裁剪、旋转、水印等功能。以下是使用Sharp库的基本步骤: 安装Sharp库可以使用npm命令: 在代码中调用Sharp库,可以先引入Sharp库: 利用Sharp库,可以将图片格式转换为其它格式,例如将JPEG图片转

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包