Qt et fenetre Dos

Qt et fenetre Dos - C++ - Programmation

Marsh Posté le 22-01-2005 à 15:11:04    

Bonjour a tous,
 
J'ai crée un programme qt, et j'aimerais, lorsque l'on cliques sur un item du menu, arriver sur une fenetre dos, dans laquelle j'aimerais lancer quelques fonctions.
 
J'ai crée une connection avec un slot, et dans ce slot, j'ai mis le code de ma fonction (dans le fichier ui.h). Hors cela ne marche pas. Comment faut-il s'y prendre ? Y'a-t-il une classe speciale a utiliser (je n'ai pas trouver)

Reply

Marsh Posté le 22-01-2005 à 15:11:04   

Reply

Marsh Posté le 22-01-2005 à 15:17:04    

poste le code stp


Message édité par Harkonnen le 22-01-2005 à 15:17:12

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-01-2005 à 15:19:16    

Harkonnen a écrit :

poste le code stp


 
Le code de ce que je veux envoyer ?  Voila mon slot :
 

Code :
  1. void WindowMain::Mission_Test_Calculs()
  2. {
  3. CPoint p(1000,1234,1345);
  4. CDrone c (12, 13, 14, 0, 0 ,45, 46, 1, 2, 12, 13, 14, 300, 30, p);
  5. while (GetAsyncKeyState('Q') == 0)
  6. {
  7.   c.saisie_Clavier();
  8.   if (c.retard() != c.cran_manette_gaz())
  9.    c.calcul_poussee(c.cran_manette_gaz(),0.05);
  10.   cout<<(c);
  11. }
  12. }

Reply

Marsh Posté le 22-01-2005 à 15:20:24    

il est ou le code qui lance la fenêtre DOS là ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-01-2005 à 15:24:12    

Bah justement c'est ce que je cherche...
 
La j'ai mis le code que je veux lancer a l'ouverture de la fenetre dos (mais lorsque j'execute le programme, ca envoie la fenetre, puis une multitude de fenetres dos)

Reply

Marsh Posté le 22-01-2005 à 18:25:55    

QProcess

Reply

Marsh Posté le 22-01-2005 à 19:01:04    


 
Merci. ;)
 
Mais d'apres ce que j'ai compris, avec QProcess, c'est pour appeler un autre programme externe. Hors, moi, ce n'est pas un programme externe, mais un bout de code (fonctions contenues dans des .cpp et .h) qui s'execute sans qt (donc qui ouvre une fenetre dos). :??:


Message édité par #SubZero le 22-01-2005 à 19:42:52
Reply

Marsh Posté le 23-01-2005 à 04:17:02    

Et ben avec QProcess si tu lis la doc, tu peux lancer le programme externe cmd et ensuite ecrire dedans avec la methode writeToStdin() ou recuperer des donnees avec readLineStdout()

Reply

Marsh Posté le 23-01-2005 à 12:16:58    

une "fenetre DOS" ca n'existe pas.
Pour afficher une fenetre de commandes (le bon nom de la chose), tu dois lancer le programme CMD.EXE
Pour t'en convaincre, tu peux faire : BOUTON DEMARRER, EXECUTER, et taper CMD puis appuyer sur ENTREE.
Dans une fenetre de commandes, tu peux saisir des ... commandes (la liste quasi exhaustive des commandes disponibles sont visibles en tapant la commande HELP, mais tu peux aussi lancer des fichiers executables comme des *.exe, *.bat, etc...).
Quel est le lien entre une fenetre de commandes et du code c++ pur ? Je ne comprend pas bien ton besoin.

Reply

Marsh Posté le 23-01-2005 à 12:48:15    

velleronnais a écrit :

une "fenetre DOS" ca n'existe pas.
Pour afficher une fenetre de commandes (le bon nom de la chose), tu dois lancer le programme CMD.EXE
Pour t'en convaincre, tu peux faire : BOUTON DEMARRER, EXECUTER, et taper CMD puis appuyer sur ENTREE.
Dans une fenetre de commandes, tu peux saisir des ... commandes (la liste quasi exhaustive des commandes disponibles sont visibles en tapant la commande HELP, mais tu peux aussi lancer des fichiers executables comme des *.exe, *.bat, etc...).
Quel est le lien entre une fenetre de commandes et du code c++ pur ? Je ne comprend pas bien ton besoin.


 
Oui il est vrai que j'emploie peut-etre le mauvais terme. Je veux pouvoir ouvrir une fenetre en mode console (dans laquelle je pourrais afficher des phrases avec un "cout" par exemple).

Reply

Marsh Posté le 23-01-2005 à 12:48:15   

Reply

Marsh Posté le 23-01-2005 à 13:05:02    

Moi je fais comme ça:

Code :
  1. // la chaîne passée en paramètre doit contenir un retour chariot.
  2. void ConsolePrint(const std::string & s)
  3. {
  4.     static BOOL ok = AllocConsole();
  5.     static HANDLE hnd = GetStdHandle(STD_OUTPUT_HANDLE);
  6.     DWORD dummy;
  7.     WriteConsole(hnd, s.c_str(), s.size(), &dummy, 0);
  8. }


Ca ne marche donc évidemment pas avec un cout, mais si tu le souhaites, tu peux déclarer tes propres flux pour sortir sur cette console...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed