Я создал простое приложение в QT Creator 4.2.0, то есть приложение QT Widgets, использовало все значения по умолчанию. Добавлена одна кнопка. Я попытался имитировать несколько сообщений, которые я нашел в Интернете, но не могу запустить скрипт python правильно. Я продолжаю получать это сообщение «QProcess: Destroyed while process (« python.exe ») все еще работает». Python.exe добавляется в переменную Path.Как запустить и завершить скрипт python из приложения QT GUI, созданного в QT Creator 4.2.0
Что бы я хотел сказать, когда кнопка нажата, запустите скрипт python, а затем подождите некоторое время (но не блокируйте GUI), а затем завершите скрипт python.
Прошу прощения, я очень новичок в C++/QT.
Спасибо, Джон
Мой QT код ниже ...
#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 ...
#!/usr/bin/env python
import time
while True:
time.sleep(1)
print time.time()
Edit: Я все на нем, заменив последние 5 строк моего кода QT этими двумя строками, я могу запустить свой скрипт python,
QProcess *myProcess = new QProcess();
myProcess->startDetached("python.exe C:/SFI/FastScan/Calibration/pytest.py");
Я попытался использовать myProcess.terminate(), но не могу заставить скрипт выйти. Любая помощь будет рассмотрена! Благодаря!
благодарит за ответ. К сожалению, добавьте свой код, который не исправил мою проблему. Сценарий python все еще не запускается. Интересно, что я заменил «python.exe» на «блокнот».exe ', и блокнот запускается с моим скриптом в нем и закрывается через четыре секунды. Кажется, что есть проблема с python.exe. – hokiebird
Что вы ожидаете, когда запускается скрипт python? Python - это консольное приложение, поэтому я ожидаю, что он будет работать в фоновом режиме без видимого вывода. Вы проверили диспетчер задач, работает ли python.exe? –