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 :

Développement d'interface graphique


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 11
    Par défaut Développement d'interface graphique
    Je souhaite developper une interface graphique GUI (ecrire de texte dedans,mettre des boutons,gerer des evenements utilisateurs sur des objets,.....) avec C++ sous VC++,donc OS=windows .
    Ma question est simple :
    Est ce qu'en dehors des API win32,MFC,Winforms, existe-il des bibliotheques C++ qui permettent de faire des fenetres à l'image de ceux de windows.?

    Mon intuition me dit non!! (les bibliotheques gtk sont ils portables sur windows?).

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    GTK+ fonctionne sous windows en en émulant le look & feel.
    En C++, il y a un wrapper nommé GTKmm.

    Après il y a aussi Qt, wxwidgets qui eux font utilisation des APIs win32.

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par loufoque
    Après il y a aussi Qt, wxwidgets qui eux font utilisation des APIs win32.
    Qt n'encapsule pas les API win32, c'est comme GTK. wxWidgets utilise les fenêtres natives de la plateforme, pas Qt.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Qu'importe, wxwidgets les utilise en interne.
    D'ailleurs beaucoup considèrent que c'est un avantage car les applics l'utilisant ont exactement la même tête que les autres applics de la plateforme. Ce qui évitera que toutes les tatas janines du monde se demandent: "sacré nom di dju, pourquoi qu'le truc y ressemble pas aux autres trucs?".

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Par défaut
    En regardant la faq tu aurais trouvé ca

    http://c.developpez.com/faq/cpp/?pag...GENERALITE_gui

    sinon tu as des GUI specifique utilisant SDL ou autre.

  6. #6
    Membre chevronné Avatar de aziz jim
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 455
    Par défaut
    salut observ
    ici tu trouveras une belle liste(non exaustive) des bibliothèques c et c++(GUI et autres) :
    le nom, le langage( c ou c++), la plate-forme supportée, le genre de la licence, ainsi qu'une petite description.(enjoy )
    http://c.developpez.com/bibliotheques/#Graph

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Miles
    Qt n'encapsule pas les API win32, c'est comme GTK. wxWidgets utilise les fenêtres natives de la plateforme, pas Qt.
    ??
    Comment fait Qt pour afficher une fenêtre sous Windows ( puisqu'ilk ya une version Windows de Qt ) sans faire appel quelque part des fonctions de Windows ?

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par mat.M
    ??
    Comment fait Qt pour afficher une fenêtre sous Windows ( puisqu'ilk ya une version Windows de Qt ) sans faire appel quelque part des fonctions de Windows ?
    Il n'utilise pas, comme wxWidgets, les widgets propres à Windows.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Mais je suppose qu'ils utilisent quand même, pour la fenêtre principale, une fenêtre Win32 ? C'est juste le contenu qui est propre à Qt, non ?
    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.

  10. #10
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Miles
    Il n'utilise pas, comme wxWidgets, les widgets propres à Windows.
    ?? Dans le monde win32 je ne connais pas les widgets.
    En dessous de la couche applicative il ya les fonctions win32 aussi diverses que Rectangle(HDC..) ou bien WaitForSingleObject.....


    C'est totalement impossible d'écrire une appli Windows sans quelque part faire appel à des API win32.
    Sauf si c'est
    *une appli ms-dos 16bits
    *un service Windows
    *.NET ? Mais même le framework finit par appeler des API win32

    La manière dont procéde wxWidget c'est qu'on appelle des fonctions contenues dans des dll , tout comme des classes définies dans des lib ou dll de Qt..
    Ces mêmes dll qui selon l'OS utilisent des API de Windows ou non avec maintes #ifdef ...

  11. #11
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Par exemple, wxWidgets va utiliser les outils de Windows pour peindre un menu, ... Qt va utiliser son propre système pour peindre sur l'écran, qui est en fait celui qui est utilisé dans KDE.

  12. #12
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par mat.M
    Citation Envoyé par Miles
    Il n'utilise pas, comme wxWidgets, les widgets propres à Windows.
    ?? Dans le monde win32 je ne connais pas les widgets.
    Tu joue sur les mots, le terme widgets désigne les composants d'une application (bouton, menu, barre défilante...) Windows ne les appelle pas comme cela puisque ce sont des fenêtres (créées avec CreateWindowEx)

    Citation Envoyé par mat.M
    C'est totalement impossible d'écrire une appli Windows sans quelque part faire appel à des API win32.
    Sauf si c'est
    *une appli ms-dos 16bits
    *un service Windows
    *.NET ? Mais même le framework finit par appeler des API win32
    Bien sûr que c'est impossible mais il existe des fonctions accessiblent aux developpeurs de plus bas niveau que celle permetant de créer des composants.
    Qt et compagnie se base sur les fonctions de dessin ou créé leurs propres classes de fenêtre alors que wxWidget utilise celle définie par windows.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Donc, en fait pour une editbox par exemple, WxWidgets utilisera le contrôle (c'est le mot que tu cherchais?) "EDIT" de Windows alors que Qt utilisera sa propre classe d'editbox, voire dessinera directement l'EditBox sur la fenêtre, c'est ça ?
    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.

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par Médinoc
    Donc, en fait pour une editbox par exemple, WxWidgets utilisera le contrôle (c'est le mot que tu cherchais?) "EDIT" de Windows alors que Qt utilisera sa propre classe d'editbox, voire dessinera directement l'EditBox sur la fenêtre, c'est ça ?
    Oui, c'est ça - pour les 2 questions

  15. #15
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par gege2061
    Tu joue sur les mots, le terme widgets désigne les composants d'une application (bouton, menu, barre défilante...) Windows ne les appelle pas comme cela puisque ce sont des fenêtres (créées avec CreateWindowEx)
    On ne va effectivement pas jouer sur les mots mais widgets ne fait pas partie du monde Windows.
    Widget il me semble fait partie du monde Unix.
    Dans le MSDN nulle part n'est mentionné ce mot Widget

    WidgetIdSee Also
    NonClientView_t::WidgetRect
    Requirements
    OS Versions: Windows CE .NET 4.0 and later.
    Header: Nclientview.hpp.
    This enumeration provides values that identify buttons used in the nonclient area of a window.
    C'est la seule occurence que j'ai trouvé dans le MSDN 2005

    Bien sûr que c'est impossible mais il existe des fonctions accessiblent aux developpeurs de plus bas niveau que celle permetant de créer des composants.
    Eh bien oui c'est justement ce dont je parle : ce sont les fonctions win32 de bases.

    Qt et compagnie se base sur les fonctions de dessin ou créé leurs propres classes de fenêtre alors que wxWidget utilise celle définie par windows.
    Attention il y a confusion totale : les classes de fenêtres Windows en win32 ce ne sont pas des classes au sens C++ mais une certaine terminologie du développement Windows ( appelé lors de CreateWindow effectivement )

    Je recommende de lire "Programming Windows" de Charles Peztold

    QT est similaire à MFC et wxWidgets simplement n'ont pas les mêmes méchanismes.

  16. #16
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par observ
    Est ce qu'en dehors des API win32,MFC,Winforms, (les bibliotheques gtk sont ils portables sur windows?).
    Merci
    Décidemment il faudrait donner des cours au gens !
    win32 n'est pas une classe C++ !

    Ce sont des fonctions Windows bas-niveau entre l'OS et l'application ; TOUT langage de programmation ( ou runtime comme la JVM de Java par exemple ) utilise ces fonctions pour faire un programme avec interface utilisateur avec un PE valide win32


    >>(les bibliotheques gtk sont ils portables sur windows?).
    oui

    Citation Envoyé par loufoque
    GTK+ fonctionne sous windows en en émulant le look & feel.
    En C++, il y a un wrapper nommé GTKmm.
    Après il y a aussi Qt, wxwidgets qui eux font utilisation des APIs win32.
    Décidemment la confusion règne : tout "class wrapper" qui fonctionne sous Windows et affiche une fenêtre Windows avec barre de titre utilise les API win32.
    C'est radicalement impossible d'afficher une fenêtre sous Windows même par le biais d'un runtime , dll ou quoique ce soit...
    Simplement avec GTK+ on n'appelle pas directement ces fonctions elles sont encapsulées

  17. #17
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Décidemment la confusion règne : tout "class wrapper" qui fonctionne sous Windows et affiche une fenêtre Windows avec barre de titre utilise les API win32.
    J'ai dit cela pour simplifier, d'autant plus que je ne connais pas le terminologie exacte des différentes couches des APIs que fournit windows. Inutile de pinailler.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Dans ma question, je n'avais pas fait la confusion, mais il est possible qu'on l'ait fait en me lisant. Aussi, la version corrigée:
    Citation Envoyé par Médinoc
    Donc, en fait pour une editbox par exemple, WxWidgets utilisera le contrôle "EDIT" de Windows alors que Qt utilisera sa propre WNDCLASS d'editbox, voire dessinera directement l'EditBox sur la fenêtre, c'est ça ?
    Au passage, si la réponse à ma question est toujours oui, quelle est l'option prise par Qt ? Faire une WNDCLASS d'EditBox (Comme Borland le fait par exemple) ou dessiner directement sur la fenêtre mère (Ce qu'a l'air de faire Java) ?
    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.

  19. #19
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par Médinoc
    Au passage, si la réponse à ma question est toujours oui, quelle est l'option prise par Qt ? Faire une WNDCLASS d'EditBox (Comme Borland le fait par exemple) ou dessiner directement sur la fenêtre mère (Ce qu'a l'air de faire Java) ?
    Ils ont Arthur qui se charge de dessiner.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Arthur??
    C'est une blague ou une lib? Rien sur Wikipédia, donc je pencherais pour la première hypothèse...
    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.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Blackberry développement d'interface graphique
    Par Watier_53 dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 15/09/2009, 16h21
  2. Réponses: 2
    Dernier message: 05/12/2008, 10h22
  3. [Débutant] Développement des Interfaces Graphiques
    Par djtsou dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 29/03/2008, 12h34
  4. outil pour développer un interface graphique??
    Par vasilov dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 25/06/2005, 18h11

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