我有一個具有某種日誌查看器的應用程序,它需要能夠呈現格式化的日誌記錄,並將其實時插入到日誌記錄中。如何快速追加到QTextEdit
我正在使用Qt寫這個,到目前爲止我使用QTextEdit
來渲染文本,使用一些html標記進行了美化,之後插入了setHtml
或insertHtml
。
然而,問題是,這些功能是瘋狂的CPU密集型和運行的年齡,懸掛整個應用程序。
類似的問題在這裏問:QTextEdit.insertHtml() is very slow
除了它沒有真正有用的答案,不是說明它很慢,它實際上提出了一個不同的東西以外。我不需要加快setHtml
或insertHtml
。如果可能,我願意使用完全不同的技術。
Qt中是否有任何機制能夠真正快速插入文本?或者甚至可能完全不同於QTextEdit
的組件?
是否有任何方法可以添加新行到QTextEdit
其中包含真正快速的富文本(以任何方式生成)?
我也注意到QTextBrowser
但它似乎只是TextEdit的擴展,可能會更快嗎?
您是否嘗試過將'QPlainTextEdit'與'QSyntaxHighlighter'結合使用?還沒有嘗試過 - 在搜索解決方案時偶然發現了它(另請參閱:http://stackoverflow.com/a/17466240/4181011) –
在什麼頻率下追加被調用?如果它比屏幕渲染速度快(比如說每秒60幀),那麼緩衝數據並用緩衝區調用追加緩存效果會更好。 – TheDarkKnight
這是約每秒1行,這已經足以掛起intel5與textedit containsng超過500行。 (setHtml()調用大約需要8秒鐘,並且每隔1秒調用一次,如果我使用insertHtml()代替,我需要調用'toPlainText()'以便我可以看到文本有多少個符號追加到文檔結尾,並且該函數也需要大約8秒,所以它是相同的。 – Petr