我写了一个应用程序,其中启动了一些“后端”进程来执行某些操作。由于它们必须在相当困难的条件下运行,所以这些子进程非常可能会失败或出现意外行为,因此我更喜欢将它们的完全控制权交给操作员。
注意:我正在使用基于subprocess模块而非QProcess的类来运行这些进程,以获得对运行进程的更多控制功能。
目前,我正在使用一个QPlainTextEdit小部件,其中附加了来自子进程的标准输出/错误,以及一些按钮,用于快速发送一些常见信号(INT、STOP、CONT、KILL等),但是:
- 在某些情况下,发送一些输入也很有用。虽然可以使用文本输入框来完成,但我更喜欢使用更“专业”的东西。 - 当然,没有直接的方法来解释特殊的控制字符,例如颜色代码、光标移动等等。 - 我不得不实现控制台的自动滚动管理,但不能保证100%地工作得很好(有时滚动锁定不像预期的那样工作等)。
所以:有人知道我可以用什么来满足这些需求吗?
我找到了qtermwidget,但它似乎更偏向于处理一个 shell 进程(而 Python 的绑定似乎只允许你运行
注意:我正在使用基于subprocess模块而非QProcess的类来运行这些进程,以获得对运行进程的更多控制功能。
目前,我正在使用一个QPlainTextEdit小部件,其中附加了来自子进程的标准输出/错误,以及一些按钮,用于快速发送一些常见信号(INT、STOP、CONT、KILL等),但是:
- 在某些情况下,发送一些输入也很有用。虽然可以使用文本输入框来完成,但我更喜欢使用更“专业”的东西。 - 当然,没有直接的方法来解释特殊的控制字符,例如颜色代码、光标移动等等。 - 我不得不实现控制台的自动滚动管理,但不能保证100%地工作得很好(有时滚动锁定不像预期的那样工作等)。
所以:有人知道我可以用什么来满足这些需求吗?
我找到了qtermwidget,但它似乎更偏向于处理一个 shell 进程(而 Python 的绑定似乎只允许你运行
/bin/bash
),而不是与已经存在的进程 I/O 通信。
pyqt4
ж”№дёәpyqt
пјҹе®ғ们жҳҜдёӨдёӘйқһеёёдёҚеҗҢзҡ„PythonжЁЎеқ—пјҢеӣ дёәpyqt
жҳҜж—§Qt3зҡ„з»‘е®ҡпјҢиҖҢPyQt4жҳҜQt4зҡ„з»‘е®ҡгҖӮ - redShadow