在 qt 中实现 GUI Shell
Posted
技术标签:
【中文标题】在 qt 中实现 GUI Shell【英文标题】:Implementing a GUI Shell in qt 【发布时间】:2013-04-11 10:02:45 【问题描述】:我想使用QTextEdit
在Qt 中实现一个简单的图形外壳。我想获取用户命令并在 QTextEdit
中打印结果。
下面的代码返回QTextEdit
的全部内容:
text_editor.toPlainText().toAscii();
但我不知道如何区分用户输入的内容和之前打印的内容。这样做的正确方法是什么?
【问题讨论】:
你为什么不只有 2 个文本编辑?一个输入一个输出?然后,您也可以将输出文本编辑为只读文本编辑。当您说“shell like”时,您是在尝试创建类似命令行的界面吗? 是的。我想创建一个命令行。使用两个文本编辑不是我的目标。我希望我的用户输入命令并查看结果 【参考方案1】:使用 QTextEdit 进行输出。它支持多行,您可以使用 html 控制颜色。然后使用单行 QLineEdit 输入命令。将 QLineEdit 放在 QTextEdit 下,您就有了一个用于简单命令界面的 GUI!当您向 QLineEdit 输入命令时,也将其打印到 QTextEdit,可能使用与命令结果不同的颜色。
这比尝试用一个小部件完成所有事情要容易得多。
【讨论】:
【参考方案2】:重新实现按键事件处理程序以完成正常工作,同时也保存用户键入的数据。一旦按下回车,单独保存的文本将被执行,然后被清除。
【讨论】:
这样我必须自己处理所有的事情。有没有高水平的解决方案? @babak6 你必须重新实现一个方法,保存按键,并监控'Enter'。无论如何,你必须做的其他事情。以上是关于在 qt 中实现 GUI Shell的主要内容,如果未能解决你的问题,请参考以下文章
如何在Python和Qt Quick QML应用程序中实现简化的双向数据绑定