QTextEdit.insertHtml()非常慢

Dan*_*sen 2 qt qt4 pyqt

我已经放弃了实际上试图让它变得更快.

我最大的问题是,当我插入html时,应用程序会慢慢爬行.我有一个进度条,我正在打电话

QCoreApplication.processEvents()
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,我正在使用pyqt)

我可以将insertHtml()放入不同的线程中,所以我没有无响应的界面吗?我该怎么办呢?我看过QThread和QThreadPool,我不太清楚从哪里开始.

odi*_*erd 6

我也有这个问题,这里有一些我做的更快的事情:

TxtBrows->setAcceptRichText(false);
TxtBrows->setContextMenuPolicy(Qt::NoContextMenu);
TxtBrows->setOpenLinks(false);
TxtBrows->setReadOnly(true);
TxtBrows->setUndoRedoEnabled(false);
Run Code Online (Sandbox Code Playgroud)

这应该摆脱不必要的开销.

此外,当插入大量文本时,它可以关闭屏幕更新:

setUpdatesEnabled(false);
    TxtBrows->append(SomeBigHTMLString);
setUpdatesEnabled(true);
Run Code Online (Sandbox Code Playgroud)

这是在Qt文档中的某处推荐的,但我现在无法找到该位置.

[编辑]我偶然发现了Docs中的位置(正好及时让他们过时了QT5 grinn)http://qt-project.org/doc/qt-4.8/qwidget.html#updatesEnabled-prop