Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大文本QT的快速输出_Qt_Qt5 - Fatal编程技术网

大文本QT的快速输出

大文本QT的快速输出,qt,qt5,Qt,Qt5,我是Qt的新手,我需要你的建议。我制作了一个向用户界面输出大量文本数据的应用程序。我使用QPlainTextEdit进行输出。例如,它在约1800ms的时间内输出约300000个单词。那个时,应用程序冻结,不响应用户请求。这很糟糕,我希望应用程序在输出时保持活动状态。我尝试过这样的方法:使用QThread在其他线程中输出单词,这样主线程就可以使用,应用程序就不会冻结。但事实证明,UI对象不能通过非主线程来更改。如果我错了,请纠正我。所以我被困在这个问题上了。如果UI对象真的不能被其他线程更改,我

我是Qt的新手,我需要你的建议。我制作了一个向用户界面输出大量文本数据的应用程序。我使用QPlainTextEdit进行输出。例如,它在约1800ms的时间内输出约300000个单词。那个时,应用程序冻结,不响应用户请求。这很糟糕,我希望应用程序在输出时保持活动状态。我尝试过这样的方法:使用QThread在其他线程中输出单词,这样主线程就可以使用,应用程序就不会冻结。但事实证明,UI对象不能通过非主线程来更改。如果我错了,请纠正我。所以我被困在这个问题上了。如果UI对象真的不能被其他线程更改,我应该使用什么技巧吗?

Re<代码>“它在约1800ms内输出约300000字。”但为什么?在那段时间里,没有人能读到那么多的文字——甚至在几个小时的时间里。你可能应该重新考虑一下。你用什么小部件?它是否需要可编辑,是否显示富文本。您是否多次逐字追加文本调用槽?尝试从另一个线程读取/生成/接收它,然后通过信号槽机制将它传递给gui线程。感谢反馈。1) 我的输出小部件应该有一个滚动条。用户可以在输出小部件的任何地方使用它。我可以在小部件滚动时向它添加单词,但如果用户突然拉动滚动条,应用程序可能会冻结。2)我已经准备好了单词的std::vector。现在我尝试使用QPlainText,但输出小部件并没有原则性。它可以是QListWidget或任何其他