Je n'ai jamais fait de GUI en C++ ... help me please :)

jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012 - 19 oct. 2010 à 22:53
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 30 oct. 2010 à 14:58
Bonjour,

J'ai fait un programme de Bataille Navale en c++ assez complet niveau algorithme mais entièrement en console windows. Ca ne me gêne pas trop mais c'est vrai que c'est pas "évident" pour l'utilisateur de rentrer les coordonnées de ses bateaux et de ses attaques...

Je ne souhaite pas que tout le programme soit sur une superbe fenêtre mais juste que l'étape "placer le bateau" et "choisir une case à attaquer" se fasse par un onClick() sur un échiquier basique, rien de bien compliquer... pour les connaisseurs ^^

J'ai lu des tutos de QT mais je n'arrive pas à faire cela :
- le programme de base en invite de commande
- ouverture d'un échiquier de sélection (GUI) lorsqu'on est à l'étape "placer bateau"

c'est impossible de mélanger une console avec une fenêtre made by QT qui s'ouvre automatiquement et se ferme avec passage de coordonnées sur un évênement onClick() ?

Merci de votre aide si vous avez des pistes !



KJM

4 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
20 oct. 2010 à 10:33
Soit tu fais une fenêtre, soit tu fais une console, il faut choisir !

Ce que tu veux faire est néanmoins possible, mais c'est inutilement difficile. Pourquoi ne pas le faire entièrement en mode fenêtré ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
jmp kjm Messages postés 73 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 17 janvier 2012
20 oct. 2010 à 12:34
Pourquoi ne pas le faire entièrement en mode fenêtré ?


Pour ne pas avoir à refaire toutes mes fonctions mais seulement rajouter une fenêtre pour cliquer sur la case à attaquer au bon moment

PS. Comment on récupère les fonctions complètes listées sur http://0217021.free.fr/phptool/doc/ ? merci

KJM
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
20 oct. 2010 à 13:43
Si tu ton programm est bien fait, changer le mode de visionnage (console ou fenêtre) devrait être aisé.

Si tu n'avais pas prévu le cas (si tu n'a pas centralisé en un seul point de ton application les interactions utilisateurs), alors tu va devoir utiliser des astuces pas terribles...

L'une des solutions consiste a demander à ton application fenetrée de manier l'application console. Tu peux émuler une console en fenetré et donc faire ce que tu veux. C'est sale et je le déconseille, mais c'est une solution rapide à ton problème.

Tu peux utiliser QProcess pour faire cela.

Pour toute question non relative à ton sujet, je t'invite à me contacter en message privé.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
30 oct. 2010 à 14:58
Salut,

Je ne connais pas QT, mais en tout cas Windows gère ça dans tous les sens : Tu peux faire une appli console avec fenêtre et une appli fenêtrée avec une console fort simplement.

Pour avoir une console depuis une appli fenêtrée -> AllocConsole.

Et pour avoir une fenêtre dans une appli console, il faut faire la même chose que dans une appli fenêtrée.

Bon, si on veut de la réactivité côté fenêtre et côté console, faut avoir une boucle de message pour la fenêtre et un "scanf" pour la console en même temps. Ce qui fait deux appels bloquants, impossible sans 2 threads. Ou utiliser PeekMessage plutôt que GetMessage pour les messages. Mais utiliser 2 threads serait plus propres.

Mais dans ton cas, je suis même pas sûr que tu ais besoin d'offrir la possibilité d'interagir sur la fenêtre et la console en même temps.
0
Rejoignez-nous