Interfacer Cygwin avec QT

Résolu
Feanor06 Messages postés 34 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 23 juillet 2010 - 22 juil. 2010 à 16:51
Feanor06 Messages postés 34 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 23 juillet 2010 - 23 juil. 2010 à 15:51
Holà !

Bon, désolé par avance si le thème n'est pas bon, je n'est rien trouvé qui s'approche de QT...

Voilà, je code une petite IHM avec QT 4.3.
J'aimerai qu'elle puisse générer des pkg linux avec la commande tar.
Par contre, dans un souci de compatibilité, si elle tourne sous Windows, j'ai pensé utiliser Cygwin pour que la commande tar puisse être utilisé.
Et c'est là qu'est le problème... je n'arrive pas à passer des commande à Cygwin...

J'utilise un QProcess mais rien y fait...
En fait, je me rends compte que le problème est moins ciblé que ça car je n'arrive même pas à passer des arguments à une console Windows classique...

Voilà mon bout de code :

QProcess pkg;
pkg.start("C:\\cygwin\\Cygwin.bat");
pkg.waitForFinished(5000);
pkg.write("cd folder");
pkg.write("tar zcvf test_pkg_with_QT.pkg install.sh");

Mais rien y fait...

Auriez-vous une idée sur le sujet ?
Et également sur le passage de commande sur une console classique du coup...
Par exemple je lance PuTTy avec l'exe et l'IP pour me connecter sur une bécane à distance mais ensuite, comment passer les commandes ?

J'ai longuement cherché sur les forums mais je ne trouve rien... (ok, je suis nul)

Merci beaucoup !!!

PS : est-ce que ça existe une commande du style if(Linux)... elseif(windows)... on ne sait jamais, ça serait super pratique...

1 réponse

Feanor06 Messages postés 34 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 23 juillet 2010
23 juil. 2010 à 15:51
Bonne nouvelle (enfin pour moi), j'ai réussi !

Voici le code qui fonctionne :

QProcess* pkg= new QProcess( this );
pkg->setProcessChannelMode(QProcess::MergedChannels);
QStringList env = QProcess::systemEnvironment();
pkg->setEnvironment(env);
pkg->start("C:\\cygwin\\Cygwin.bat");
pkg->waitForFinished(5000);
pkg->write("tar zcvf test_pkg_with_QT.pkg install.sh");
pkg->closeWriteChannel();
pkg->close();


Alors pourquoi, je n'en sais rien encore, je vais essayer d'analyser ça...

Par contre, je n'arrive pas à insérer une autre ligne avant le tar...
Si je veux changer de répertoire, un write("cd folder"); ne passe pas...

Si quelque'un sait pourquoi, je suis preneur !

Reste mon problème avec PuTTy maintenant :cry:

Merci !
3
Rejoignez-nous