QT Creator 4.2.0에서 간단한 앱을 만들었습니다. 즉, QT 위젯 응용 프로그램은 모든 기본값을 사용했습니다. 버튼 하나가 추가되었습니다. 웹에서 찾은 여러 게시물을 모방하려고했지만 파이썬 스크립트를 올바르게 시작할 수 없습니다. 이 메시지가 계속 나타납니다. "QProcess : 프로세스 ("python.exe ")가 실행 중일 때 폐기 됨." Python.exe가 Path 변수에 추가됩니다.QT Creator 4.2.0에서 생성 된 QT GUI 앱에서 파이썬 스크립트를 시작하고 종료하는 방법
버튼을 누르면 파이썬 스크립트가 실행되고 얼마 동안 기다리지 만 (GUI는 잠그지 않음) 파이썬 스크립트가 종료됩니다.
죄송합니다. 저는 C++/QT에 매우 익숙합니다. 나는 계속 :
는#!/usr/bin/env python
import time
while True:
time.sleep(1)
print time.time()
편집 ...
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QProcess>
#include <QDir>
#include <QCoreApplication>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
//define file paths.. make sure the paths work
QDir dir1("C:/SFI/FastScan/Calibration/");
QFile file1("C:/SFI/FastScan/Calibration/pytest.py");
QString script1 = "C:/SFI/FastScan/Calibration/pytest.py";
QFile file2(script1);
qDebug() << dir1.exists() << file1.exists() << file2.exists();
// these all result in true, true true
// latest method I tried
QString command("python.exe");
QStringList args;
args << script1;
QProcess *myProcess = new QProcess(this);
myProcess->start(command,args);
}
파이썬 스크립트는 아래 파이썬 2.7입니다 ...
내 QT 코드는 다음과 같습니다 존을 주셔서 감사합니다 그것으로, 내 QT 코드의 마지막 5 줄을이 두 줄로 바꿈으로써 파이썬 스크립트를 시작할 수 있습니다.
QProcess *myProcess = new QProcess();
myProcess->startDetached("python.exe C:/SFI/FastScan/Calibration/pytest.py");
myProcess.terminate()를 사용하려했지만 스크립트를 종료 할 수 없습니다. 도움이 될 것입니다! 감사!
응답 해 주셔서 감사합니다. 아쉽게도 제공된 코드를 추가해도 문제가 해결되지 않았습니다. 파이썬 스크립트는 여전히 실행되지 않습니다. 흥미롭게도 필자는 'python.exe'를 'notepad'로 대체했습니다.exe '를 실행하고 메모장에 내 스크립트를 시작하고 4 초 후에 닫습니다. python.exe에 특별한 문제가있는 것 같습니다. – hokiebird
파이썬 스크립트가 시작될 때 무엇을 기대합니까? 파이썬은 콘솔 응용 프로그램이므로 시각적 출력없이 백그라운드에서 실행되기를 기대합니다. python.exe가 실행 중인지 확인하기 위해 작업 관리자를 확인 했습니까? –