당신이 그것을 가능의 여부를 판단 할 수 있습니다하는 기준은 무엇입니까?
확실히 가능합니다. 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
최고!
응답 해 주셔서 감사합니다. 파이썬 예제에서 textedit 구성 요소의 키 스트로크를 읽고 프로세스의 STDIN으로 보내는 방법은 무엇입니까? –
[textChanged] (http://www.pyside.org/docs/pyside/PySide/QtGui/QTextEdit.html#PySide.QtGui.PySide.QtGui.QTextEdit.textChanged) 신호를 ' process.write (...)'. KDE 라이브러리의 [konsolepart] (http://api.kde.org/4.5-api/kdebase-apps-apidocs/konsole/html/classKonsole_1_1Part.html)는 재사용 가능한 터미널 에뮬레이터 구성 요소이며 이런 종류의 상호 작용은 더 쉽고 (더 잘 보이는) ([예제] (https://projects.kde.org/projects/kde/kdebindings/pykde4/repository/revisions/master/entry/examples/kpartsExamples/konsolepart.py)) . – gvalkov