Qt's best way to display very large rich text?
I need to display very large logs that uses HTML tags for marking different types of data.
Using QTextEdit and QTextBrowser really slows the application, especially on append operations. I would really like to keep the QTextEdit interface and abilities.
I've seen people that implemented their own flavor of TextEdit to improve performance, but I wandered if anyone solved this issue using "Qt" tools. I thought about using the Model/View framework to load data on demand but it is not quite what it was intended for I think.
Maybe subclassing QTextEdit and override some of its slots for scrolling...
If anyone encountered this issue and solved it, I would appreciate some tips.
Thanks.
Since your log is presumably tabular at some level, then the Model/View framework sounds like it could work for you. Perhaps you could try using a QListView
with QGraphicsTextItem
:
http://doc.qt.nokia.com/latest/qgraphicstextitem.html
It has methods for setting/getting the HTML:
http://doc.qt.nokia.com/latest/qgraphicstextitem.html#setHtml
http://doc.qt.nokia.com/latest/qgraphicstextitem.html#toHtml
You'll get some benefits and hassles from writing it that way. But you should certainly be able to finesse the insertions and append speed.
Use QPlainTextEdit
for large log files -- that's what it was designed for. You don't get the full range of options that QTextEdit
provides, but you can set the font and the text colour.
why not using QWebKit
? Module itself is rather heavy, but rendering speed is very good.
下一篇: Qt是显示非常大的富文本的最佳方式?