我已经放弃尝试使其更快了。
我的最大问题是,在插入HTML时,应用程序变得非常缓慢。
我有一个进度条,我正在调用:
QCoreApplication.processEvents()
(顺便说一下,我正在使用pyqt)
我能把insertHtml()放到另一个线程中吗,这样我就不会有无响应的界面了吗? 我该如何做呢?我已经研究了QThread和QThreadPool,但我不太确定从哪里开始。
我已经放弃尝试使其更快了。
我的最大问题是,在插入HTML时,应用程序变得非常缓慢。
我有一个进度条,我正在调用:
QCoreApplication.processEvents()
(顺便说一下,我正在使用pyqt)
我能把insertHtml()放到另一个线程中吗,这样我就不会有无响应的界面了吗? 我该如何做呢?我已经研究了QThread和QThreadPool,但我不太确定从哪里开始。
我也遇到过这个问题,下面是我采取的一些方法来加快速度:
TxtBrows->setAcceptRichText(false);
TxtBrows->setContextMenuPolicy(Qt::NoContextMenu);
TxtBrows->setOpenLinks(false);
TxtBrows->setReadOnly(true);
TxtBrows->setUndoRedoEnabled(false);
这将消除不必要的开销。
此外,在插入大量文本时,最好关闭屏幕更新:
setUpdatesEnabled(false);
TxtBrows->append(SomeBigHTMLString);
setUpdatesEnabled(true);
我在Qt文档中某个地方看到过这个建议,但现在找不到了。
[编辑] 我偶然找到了文档中的位置(刚好赶上它们被QT5更新,嘿嘿)http://qt-project.org/doc/qt-4.8/qwidget.html#updatesEnabled-prop