Bonjour,
Debian/QTCreator last release.
Je rencontre quelques problèmes avec l'usage de QProcess. J'ai créé une fenêtre qui me permet d'indiquer le nom d'un programme à lancer et les arguments à passer.
A partir d'un bouton démarrer, je lance donc le programme grâce à un QProcess.
Dans un premier cas, je lance un programme test1 de ma fenêtre : pas de problème, ça fonctionne très bien.
Deuxième cas, je lance un programme test2 de ma fenêtre : le programme se lance mais bloque !!
J'ai essayé de varier les OpenMode sans succès. Je n'ai pas d'autres besoin dans ce lancement de connaître la fin du processus (pas d'échanges de données).
Et tout cela avec le même code (ci-dessous)
La différence notable entre test1 et test2 est que dans test2 j'accède à un fichier en lecture !!
J'ajoute que, lancés de la console de commande, test1 et test2 se comportent normalement.
Auriez-vous une piste de recherche, je sèche !!!
Merci d'avance, amicalement.
====
Code
====
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 // QProcess * pr est déclaré dans la classe serveur serveur::serveur(QWidget *parent) : QMainWindow(parent), ui(new Ui::serveur) { ui->setupUi(this); // initialisation de pr pr = new QProcess(this->parent()); // connexion signal - slot QObject::connect(pr, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(fin_calcul())); } void serveur::on_bouton_demarrer_clicked() { // setting de l'environnement QStringList env = QProcess::systemEnvironment(); pr->setEnvironment(env); // récupération à partir de QLineEdit du nom de la commande et des paramètres QString commande = ui->gene_prog->text(); QString params = ui->parametres->text(); if(!commande.isEmpty()) { // lancement du processus commande = "uc/" + commande; QStringList arguments = params.split(" "); pr->start(commande, arguments, QIODevice::NotOpen); } } void serveur::fin_calcul() { ui->bouton_demarrer->setText(QString::fromUtf8("Fin de la génération")); }
Partager