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.

链接地址: http://www.djcxy.com/p/8752.html

上一篇: MongoDB / C#驱动程序和内存问题

下一篇: Qt是显示非常大的富文本的最佳方式?