QGraphicsTextItem 对于长段落来说太慢了

问题描述 投票:0回答:1

我正在尝试用 Qt 制作简单的文本编辑器。我计划使用 QGraphicsScene,因为它比 QTextEdit、QTextBrowser 等有更多的机会。因此,首先,我准备了使用 QGraphicsTextItem 的简单示例:

#include <QApplication>
#include <QWidget>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QGraphicsView view;
    QGraphicsScene *scene = new QGraphicsScene;
    QGraphicsTextItem *text = new QGraphicsTextItem;

    text->setTextWidth(1020);
    text->setTextInteractionFlags(Qt::TextEditorInteraction);
    text->setFocus();

    scene->addItem(text);

    view.setScene(scene);
    view.show();

    return app.exec();
}

该应用程序适用于格式化文本:包含段落和不同的样式。但是当我尝试写一个长段落时,它已经开始冻结在大约 200k 符号处,这对于我的任务来说相当小。我认为这是因为 Qt 在内部将复杂文本分为多个部分,但对于相同样式的简单文本却没有这样做。我尝试了很多标志,但没有一条加快 QGraphicsScene 速度的建议对我有帮助。你能告诉我我该怎么办吗?

qt qgraphicsscene qgraphicsitem qgraphicstextitem
1个回答
0
投票

这个问题我已经回答过了。

简单来说,您应该使用

beginEditBlock
endEditBlock

在 PySide6 Qt 中创建许多文本框而不减慢速度

© www.soinside.com 2019 - 2024. All rights reserved.