【问题标题】:Implementing a GUI Shell in qt在 qt 中实现 GUI Shell
【发布时间】:2013-04-11 10:02:45
【问题描述】:

我想使用QTextEdit 在Qt 中实现一个简单的图形外壳。我想获取用户命令并在 QTextEdit 中打印结果。

下面的代码返回QTextEdit的全部内容:

text_editor.toPlainText().toAscii();

但我不知道如何区分用户输入的内容和之前打印的内容。这样做的正确方法是什么?

【问题讨论】:

  • 你为什么不只有 2 个文本编辑?一个输入一个输出?然后,您也可以将输出文本编辑为只读文本编辑。当您说“shell like”时,您是在尝试创建类似命令行的界面吗?
  • 是的。我想创建一个命令行。使用两个文本编辑不是我的目标。我希望我的用户输入命令并查看结果

标签: qt qtgui


【解决方案1】:

使用 QTextEdit 进行输出。它支持多行,您可以使用 HTML 控制颜色。然后使用单行 QLineEdit 输入命令。将 QLineEdit 放在 QTextEdit 下,您就有了一个用于简单命令界面的 GUI!当您向 QLineEdit 输入命令时,也将其打印到 QTextEdit,可能使用与命令结果不同的颜色。

这比尝试用一个小部件完成所有事情要容易得多。

【讨论】:

    【解决方案2】:

    重新实现按键事件处理程序以完成正常工作,同时也保存用户键入的数据。一旦按下回车,单独保存的文本将被执行,然后被清除。

    【讨论】:

    • 这样我必须自己处理所有的事情。有没有高水平的解决方案?
    • @babak6 你必须重新实现一个方法,保存按键,并监控'Enter'。无论如何,你必须做的其他事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多