在 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应用程序中实现简化的双向数据绑定

在 QT 中实现具有多个小部件的视图的最佳方法是啥?

如何在 Python 和 Qt Quick QML 应用程序中实现简化的双向数据绑定

C++ 中的 GNU Radio QT GUI 接收器

如何在 Swing 中实现动态 GUI

Qt QTreeWidget 树形结构实现(转)