我正在尝试用 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 速度的建议对我有帮助。你能告诉我我该怎么办吗?