#include #include #include #include #include #include #include class MyWidget : public QWidget { private: QProcess *proc; public Q_SLOTS: void onClicked() { proc = new QProcess; QObject::connect(proc, &QProcess::started, this, []() { qDebug() << "Process started"; } ); QObject::connect(proc, QOverload::of(&QProcess::finished), this, []() { qDebug() << "Process finished"; } ); //qDebug() << "SKDBG1: " << proc->processEnvironment().toStringList(); //qDebug() << "SKDBG2: " << QProcessEnvironment::systemEnvironment().toStringList(); proc->start("sleep", { "1"} ); } }; int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWidget w; w.setLayout(new QVBoxLayout); QPushButton *pb = new QPushButton("QProcess"); w.layout()->addWidget(pb); w.show(); QObject::connect(pb, &QPushButton::clicked, &w, &MyWidget::onClicked); return a.exec(); }