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))

まだ計画段階なので、GUIパーツにzenityなどのツールを検討してみませんか?それはあなたに多くの仕事を節約することができます。チェックボックスのリストを取得し、コマンドの出力をテキストエリアに送信することは次の問題になります。

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 に答える