【问题标题】:What's a good way to display a lot of text in QT在QT中显示大量文本的好方法是什么
【发布时间】:2016-09-08 18:32:21
【问题描述】:

我正在构建一个将读取 gcode 文件的应用程序。文件范围从几 KB 到几百 MB(但这种情况很少见)。用户选择一个文件后,程序会遍历它并逐行读取。这根本不需要很长时间。

我想在 QTextEdit 小部件中显示我刚刚读入的文件的文本。不幸的是,这样做需要很长时间(即使是小文件也需要几秒钟)。

我曾考虑为用户添加一条“正在加载,请稍候”消息,但我想知道是否有办法加快文本加载过程。

现在我的代码如下所示:

 QTextStream in(gcodeFile); //The file path was given by the user
 ui->textEdit->setText(in.readAll());
 in.seek(0);
 processGcode();

有没有更好的方法将大量文本加载到不会导致应用挂起的 QTextEdit 中?

注意:问题不在于我两次阅读文件。我更改了我的代码,使其在将文本添加到 QTextEdit 的同时进行处理,但整个过程仍然花费了太长时间。

【问题讨论】:

  • 您是否尝试过使用QPlainTextEdit?它是一个更流畅的小部件,用于显示(和编辑)文本,没有很多 QTextEdit 携带的内容(请参阅here)。正如描述所述 It is optimized to handle large documents and to respond quickly to user input. 这似乎是你的情况。
  • 哇哦!非常感谢,这是完美的。如果您将此作为答案发布,我会将其标记为正确。
  • 在尝试之前不要说万岁。在大多数情况下,QPlainTextEdit 并不比QTextEdit 快多少。看看你实际上得到了什么改进(如果有的话)。
  • G 代码是否可以编辑?
  • 我试过了,效果很好。 G代码可以编辑,我还没决定

标签: qt qtextedit g-code


【解决方案1】:

“QPlainTextEdit 是一款支持纯文本的高级查看器/编辑器。它经过优化,可处理大型文档并快速响应用户输入。”

您可以在here查看详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多