0

我编写了一个基于文本 CLI 的脚本来测试某些设备。一些测试需要输入是/否答案以及阅读脚本的输出。我想看看创建一个 PyQT 应用程序是否可行。可以在这种类型的交互上放置一个 GUI 前端吗?例如,当用户单击按钮运行脚本时,脚本运行时将其输出行一次发送到 GUI 上的文本窗口,并且从 GUI 输入的任何行也向下发送到脚本。

TIA,弗雷德

4

1 回答 1

1

你判断它是否可行的标准是什么?

这当然是可能的。QProcess类提供了在 Qt 应用程序中运行和与外部进程交互所需的一切。从本质上讲,它可以做所有subprocess可以做的事情(尽管不太方便)。这是一个人为的用法示例:

button = QPushButton('start')
textedit = QTextEdit()
process = QProcess()

button.clicked.connect(on_clicked)

def on_clicked():
    process.readyReadStandardOutput.connect(read_ready)
    process.start('/bin/sh',
       ('-c', "while /bin/true; do echo hello world ; sleep 1; done"))

def read_ready(self):
    chunk = process.readAllStandardOutput()
    textedit.append(str(chunk))

既然您仍处于规划阶段,为什么不考虑使用zenity之类的工具作为 GUI 部分呢?它可以为您节省大量工作。获取复选框列表并将命令的输出发送到 textarea 变成:

parameters=$(
zenity --list --text "Test parameters:" \
       --checklist --column "Check" --column "Parameter" \
       TRUE "One" TRUE "Two" TRUE "Three" FALSE "Four" \
       --separator=":");

# parameters -> One:Two:Three
./instrument-test.py $parameters | zenity --text-info

祝你的项目好运!

于 2012-09-23T01:13:12.327 回答