如何在Qt中更改文本文档中文本块的背景

如何在Qt中更改文本文档中文本块的背景,qt,qt4,Qt,Qt4,有没有一种方法可以在不使用QAbstractTextDocumentLayout子类的情况下更改QTextDocument中QTextBlock的背景色。我尝试了很多方法,但效果都是无效的。我尝试使用QplaintExtenditor的textCursor()方法,但实际上似乎所有内容都是常量。这个示例能帮助您吗 您也可以在QtDemos的演示->文本编辑中找到它 希望有帮助 这个例子对你有帮助吗 您也可以在QtDemos的演示->文本编辑中找到它 希望有帮助 您可以尝试以下合并方法: QT

有没有一种方法可以在不使用QAbstractTextDocumentLayout子类的情况下更改QTextDocument中QTextBlock的背景色。我尝试了很多方法,但效果都是无效的。我尝试使用QplaintExtenditor的textCursor()方法,但实际上似乎所有内容都是常量。

这个示例能帮助您吗

您也可以在QtDemos的演示->文本编辑中找到它


希望有帮助

这个例子对你有帮助吗

您也可以在QtDemos的演示->文本编辑中找到它


希望有帮助

您可以尝试以下合并方法:

QTextCursor cur = edit->textCursor();
QTextCharFormat fmt;
fmt.setBackground(QBrush(Qt::gray));
cur.mergeBlockCharFormat(fmt);

您可以尝试以下合并方法:

QTextCursor cur = edit->textCursor();
QTextCharFormat fmt;
fmt.setBackground(QBrush(Qt::gray));
cur.mergeBlockCharFormat(fmt);

是的,我昨天也尝试过类似的方法:blkFormat=newqtextblockformat();blkFormat->setBackground(QBrush(Qt::green,Qt::SolidPattern));blkFormat->setForeground(QBrush(Qt::black,Qt::SolidPattern));textCursor().setBlockFormat(*blkFormat);因此,当我看到您使用mergeBlockCharFormat()时,我想这正是我所缺少的,但我最终得到了相同的结果,即程序被调试器中断:我看到您使用指向在堆上创建的对象(块格式)的指针-实际上没有必要这样做(希望您在相应的setBlockFormat()之后正在清理它们!)-只是一个警告,您可以在遇到问题的部分周围发布更多代码吗?您需要文本光标指向要修改格式的块(或选择)。是的,我昨天尝试了类似的方法:blkFormat=new QTextBlockFormat();blkFormat->setBackground(QBrush(Qt::green,Qt::SolidPattern));blkFormat->setForeground(QBrush(Qt::black,Qt::SolidPattern));textCursor().setBlockFormat(*blkFormat);所以当我看到你使用mergeBlockCharFormat()时我想这就是我所缺少的,但我最终得到了相同的结果,即程序被调试器中断:我看到您使用指向在堆上创建的对象的指针(块格式)-实际上没有必要这样做(希望您在相应的setBlockFormat()之后清理它们!)-只是一个警告,你能在遇到问题的部分周围发布更多代码吗?你需要文本光标指向块(或选择)您正在修改的格式。谢谢,我的错,我只是查看示例,而不是演示,我想知道为什么它们不是示例。我想知道我是否能够通过编程实现这一点,因为文本编辑似乎只修改用户选择的布局。我将在查看代码时看到:DThanks,我的错,我只查看了insi删除示例而不是演示,我想知道为什么它们不是示例。我想知道我是否能够通过编程实现这一点,因为文本编辑似乎只是修改用户选择的布局。我将在浏览代码时查看:D