IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Passer de l'apprentissage C++ à la création d'application


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Passer de l'apprentissage C++ à la création d'application
    Bonjour,
    j'ai pas mal avancé dans mon apprentissage du langage C++. J'aborde maintenant la programmation orienté objet avec les classes.
    Pourtant, j'ai une question, car je n'arrive pas a trouver de réponse sur le net ou les forums:

    Jusqu'a maintenant mes programmes s'executent dans une invite de commande. Mais .... j'ai téléchargé QT4, j'ai des livres sur le sujet pour l'utiliser seulement je ne reconnais rien de se que j'ai pu aborder jusque la.
    Je ne retrouve que dans la forme ce que j'ai appris en C++ mais impossible alors de comprendre comment les notions acquises vont me servir pour créér des applications, meme banal.
    En gros, comment je passe de l'invite de commande a de vraies applications windows ?

    Merci de votre aide a tous

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je pense que ce qu'il te faut, ce sont des tutoriaux: Comment faire son premier "hello world" en QT4, puis évoluer vers les boîtes de dialogue faisant quelque chose d'utile, avant d'enchaîner sur les applications pouvant afficher et faire ce que tu veux.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Il semblerait que vous m'ayez mal compris, ou que je me sois mal expliqué ?

    Citation Envoyé par Médinoc Voir le message
    Je pense que ce qu'il te faut, ce sont des tutoriaux: Comment faire son premier "hello world" en QT4, puis évoluer vers les boîtes de dialogue faisant quelque chose d'utile, avant d'enchaîner sur les applications pouvant afficher et faire ce que tu veux.
    On dirait que je ne me suis pas fait comprendre ou mal expliquer :
    Ce que j'ai appris en mode console n'a rien a voir avec le mode GUI. JE cherche pas des tutos, mais des livres comme ceux que j'ai pour apprendre le C ++

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Effectivement il te manque une chose: la conception

    Et là également tu trouves tout sur Internet : patron de conception "Design Pattern", héritage/ composition/ agrégation, gestion de la mémoire, programmation défensive, ...

    Voire éventuellement des techniques moins axées sur "le langage" pour manipuler/ isoler/ programmer la logique métier, la gestion IHM (dans ton cas Qt) ...

    De toute manière avec Qt attends-toi à prendre beaucoup de temps pour appréhender "la bête"

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    En gros, tu dirais que je suis dans la mer*** lol
    Plus sérieusement, j'ai aussi Borland 6 qui me semble plus intuitif que Qt, seulement, je ne trouve aucune doc complete et détaillée sur cette bete qu'est Borland.
    Autre soucis que je remarque avec Qt, si on ne met pas les dll's l'EXE ne tourne pas ! Ce qui ne me donne pas tres envie de m'investir dans Qt

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    QT c'est une énorme machinerie, bien loin du hello world de la console.
    Commence par suivre un tuto hello world QT comme mentionné plus haut. Avant de courrir, on apprend à marcher...

    Sinon pour faire de l'interface plus "aisément", j'aime bien WxWidget. Moins artillerie lourde que QT mais très correct. En tous cas il y a quelques années, donc je suppose que ça s'est amélioré.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par lionel62620 Voir le message
    je ne trouve aucune doc complete et détaillée sur cette bete qu'est Borland.
    Parce que Borland c'est un IDE (une antiquité ) et non pas une bibliothèque

    Par exemple C++ Builder xe (Embarcadero) livre la bibliothèque VCL qui est une surcouche [plus ou moins] objet de la bibliothèque Win32.


    Citation Envoyé par lionel62620 Voir le message
    Autre soucis que je remarque avec Qt, si on ne met pas les dll's l'EXE ne tourne pas ! Ce qui ne me donne pas tres envie de m'investir dans Qt
    C'est la différence entre la compilation avec des librairies dynamiques et avec des librairies statiques

    Ce n'est pas spécifique à Qt

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut,

    De manière générale, le tout premier conseil à te donner est de te rappeler qu'une interface graphique n'est jamais que "le moyen de t'afficher les informations utilisées par ton application", qu'un moyen de te permettre de les comprendre et de les appréhender facilement.

    Après tout, que tu utilises la console (avec std::cout) wxWidget, Qt ou n'importe quelle autre bibliothèque de création d'IHM ne change pas grand chose au fait que ton but est de permettre la représentation des données.

    L'idée est donc de faire une distinction très claire entre trois aspects bien précis en utilisant ce que l'on appelle le modèle MVC (pour model view controller ):

    D'abord, tu as tes "données métiers" (le "modèle") qui représentent l'ensemble des concepts propres à ton application. Elles doivent pouvoir fonctionner de manière totalement indépendante de toute bibliothèque graphique ou -- pour aller plus loin -- de tout contexte d'affichage ou d'entrée sortie spécifique (cela signifie que tu ne dois pas avoir une fonction "print()" pour tes différentes classes)

    C'est, à peu de chose près, ce que tu as sans doute déjà appris lors de ton apprentissage du C++

    Ensuite, tu as la vue, qui correspond à l'interface graphique qui te permet d'appréhender tes données métiers. Son but essentiel sera donc d'afficher les valeurs exposées par tes données métiers dans de jolis widget afin que l'utilisateur puisse "se faire une idée précise" des différentes valeurs utilisées par les données métiers à un instant T de l'exécution de ton application.

    Une fois que tu sera en mesure de faire afficher les informations intéressantes utilisées par tes données métier, tu t'attendra sans doute à pouvoir modifier certaines de ces informations. Mais il y a un impératif majeur : les modifications que l'on voudra apporter ne pourront être acceptées que si elles laissent les données métiers dans un état cohérent.

    Tu devras donc mettre en place "un système de controleurs" qui seront en mesure de constater les changements apportés aux valeurs affichées par l'utilisateur, qui vérifieront que les nouvelles valeurs soient cohérente et qui feront en sorte de modifier les données métier en conséquence.

    Cette approche te permettra d'arriver à "quelque chose", pour peu que tu saches déjà le type d'application que tu souhaites créer. Et, pour ce dernier point, ta seule inspiration devrait faire l'affaire
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    En règle du jeu, pour t'aider, je te suggère fortement d'utiliser des namespaces.

    Un namespace tel que metier:: pour tout ce qui est donné
    un autre ui:: ou interface:: (souvent, j'inclue dedans ui::cli:: et/ou ui::cli:: pour avoir un mode console et/ou un mode graphique)

    Un bon moyen de réussir son découpage, c'est de n'avoir un ui:: dans les fichiers définissant metier::.
    Il ne doit y avoir aucune règle de gestion dans ui::.
    Je ne parle pas de la validation atomique de données: vérifier qu'un champ de saisie contient bien un nombre, par exemple, est le bon endroit.

    Enfin, tu utilise main() pour connecter les deux parties.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/10/2007, 22h27
  2. passer d'une fenetre à une autre dans une application cdc
    Par ainosaidan dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 23/08/2007, 13h21
  3. Delphi. Création d'application de base de données clx
    Par cmantana dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/11/2006, 12h55
  4. Création d’une application qui se lance au démarrage
    Par faten7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/04/2006, 20h10
  5. Réponses: 3
    Dernier message: 04/10/2005, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo