我已经放弃了实际上试图让它变得更快.
我最大的问题是,当我插入html时,应用程序会慢慢爬行.我有一个进度条,我正在打电话
QCoreApplication.processEvents()
Run Code Online (Sandbox Code Playgroud)
(顺便说一下,我正在使用pyqt)
我可以将insertHtml()放入不同的线程中,所以我没有无响应的界面吗?我该怎么办呢?我看过QThread和QThreadPool,我不太清楚从哪里开始.
我也有这个问题,这里有一些我做的更快的事情:
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