QTextEdit.insertHtml() is very slow

后端 未结 2 1684
野的像风
野的像风 2021-01-14 18:16

I\'ve given up on actually trying to make it go faster.

My biggest problem is that when I\'m inserting the html, the application slows down to a crawl. I have a pro

相关标签:
2条回答
  • 2021-01-14 19:10

    In GUI applications, the main thread is also called the GUI thread because it's the only thread that is allowed to perform GUI-related operations. -- from the Qt Docs

    So, no. Unfortunately you cannot perform that operation in a thread.

    Edit: Technically, it is possible. I just wrote a short snippet that did so, however using Qt GUI objects in that way is highly unsafe.

    0 讨论(0)
  • 2021-01-14 19:21

    I had this problem as well, here are a few things I did to make it faster:

    TxtBrows->setAcceptRichText(false);
    TxtBrows->setContextMenuPolicy(Qt::NoContextMenu);
    TxtBrows->setOpenLinks(false);
    TxtBrows->setReadOnly(true);
    TxtBrows->setUndoRedoEnabled(false);
    

    This should get rid of unneeded overhead.

    Also when inserting large amounts of text its good to turn off screen updates:

    setUpdatesEnabled(false);
        TxtBrows->append(SomeBigHTMLString);
    setUpdatesEnabled(true);
    

    This was recommended somewhere in the Qt documentation but I can't find the spot just now.

    [Edit] I stumbled across the spot in the Docs (just in time for them to be outdated by QT5 grinn) http://qt-project.org/doc/qt-4.8/qwidget.html#updatesEnabled-prop

    0 讨论(0)
提交回复
热议问题