Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quelle bibliothèque graphique ?

Qt, wxwidgets, GTK+...

    15 novembre 2007 à 19:15:45

    Salut,
    Je souhaite me mettre au C++, mais pour ça, j'aimerais bien choisir une bibliothèque graphique, et pour l'instant, je ne sais pas laquelle choisir...

    Pour l'instant, je suis tenté par wxWidgets, car elle à une license moins restrictive, mais j'aimerais bien savoir si elle est aussi bien maintenue que Qt & GTK+, si elle propose de la doc. en français, ce qu'elle à de plus et de moins que Qt & GTK+, et si elle gère bien l'UTF-8 (j'ai vu qu'elle le gérait mal, mais ça remonte à 2004)...

    Pour l'instant, je recherche une bibliothèque graphique :
    - puissante
    - multi-plateforme (critère important)
    - Maintenue, à jour...

    Et j'aimerais aussi savoir si Qt s'intègre aux fenetres windows, au niveau du "style" ou si il a une interface qui ne chenge pas (comme GTK+)

    Que me conseillez-vous ?

    PS: L'avis de ceux qui ont testé plusieurs bibliothèques graphiques m'intéresse particulièrement.
    • Partager sur Facebook
    • Partager sur Twitter
      15 novembre 2007 à 19:26:29

      Citation : palkeo

      Et j'aimerais aussi savoir si Qt s'intègre aux fenetres windows, au niveau du "style" ou si il a une interface qui ne chenge pas (comme GTK+)


      tu as le design par défaut de ton OS (windows normal, XP ou mac ! pour linux par défaut c'est "plastique") mais tu peux le changer facilement.

      Citation : palkeo

      Que me conseillez-vous ?


      Si la licence ne te dérange pas trop, Qt est un excellent choix.

      Citation : palkeo

      PS: L'avis de ceux qui ont testé plusieurs bibliothèques graphiques m'intéresse particulièrement.


      j'ai jamais pu tester wxwidgets (impossible à installer, j'ai réussi avec les devpacks mais aucun code ne voulait compiler).
      Et rien qu'à voir le code pour les événements (DECLARE_EVENT_TABLE ...) je trouve que çà alourdit le code.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 novembre 2007 à 19:53:28

        Je suis passé de wx à Qt et je ne peut te conseiler de prendre la 2eme.
        En effet, elle bien plus puissante et mieux fournis que wx.
        De plus, elle est plus simple sur certains points non négligables.
        • Partager sur Facebook
        • Partager sur Twitter
          16 novembre 2007 à 13:10:47

          Citation : minirop

          Et rien qu'à voir le code pour les événements (DECLARE_EVENT_TABLE ...) je trouve que çà alourdit le code.



          Il y a aussi Connect(), comme sous Qt, qui remplace très bien l'EVENT_TABLE!
          • Partager sur Facebook
          • Partager sur Twitter
            16 novembre 2007 à 13:23:40

            Bon, objectivement j'ai utilisé les deux (j'ai peut-être plus utilisé wxWidgets que Qt par le passé d'ailleurs).

            Installation :



            Qt : très simple d'installation sous Windows en tout cas.
            wxWidgets : une galère. J'en ai bavé avant d'arriver à le compiler. Si tu débutes c'est un peu chaud.

            Utilisation :



            Qt : très simple d'utilisation dans l'ensemble, bien fourni, bien organisé
            wxWidgets : bien fourni, bien organisé aussi. Ce n'est pas beaucoup plus compliqué à utiliser que Qt au final, même si je trouve le code de Qt en général plus joli (les macros d'évènements wxWidgets sont moches, mais elles ne nécessitent pas de moc elles au moins).

            Licence :



            Qt : c'est son point noir, tu ne peux l'utiliser que pour faire des programmes Open Source (et un particulier n'a pas les moyens de se payer la licence propriétaire).
            wxWidgets : il te donne le plus de libertés à ce niveau, tu fais ce que tu veux avec.

            Mises à jour :



            Qt : très souvent
            wxWidgets : je ne me tiens pas trop au courant, mais c'est un projet solide et matûre (comme Qt), aucune inquiétude à avoir de ce côté-là non plus.
            • Partager sur Facebook
            • Partager sur Twitter

            If you'd like to join us, read "How do we work at OpenClassrooms"! :)

              16 novembre 2007 à 15:09:00

              Salut,

              Citation : M@teo21

              Installation :


              [...]
              wxWidgets : une galère. J'en ai bavé avant d'arriver à le compiler. Si tu débutes c'est un peu chaud.


              Hum, je ne me souviens pas d'avoir rencontré beaucoup de problèmes de ce côté-là. À l'occasion, j'essaierai de me souvenir de ce que j'avais fait, si ça peut être utile à quelqu'un...

              Citation : M@teo21

              Licence


              Qt : c'est son point noir, tu ne peux l'utiliser que pour faire des programmes Open Source


              Mouais, je reconnais que c'est forcément gênant (euphémisme) si on veut écrire un soft propriétaire, mais quand même, présenter ça comme un "point noir" me choque un peu...

              D'autant que pour un débutant, je ne pense pas que la question de la licence ait beaucoup d'importance : pour ma part, je n'avais jamais envisagé de distribuer (que ce soit sous une licence libre ou pas) les premiers programmes que j'ai écrit (j'avais plutôt envie de les cacher pour que personne ne voit ça :-° ).
              • Partager sur Facebook
              • Partager sur Twitter
                16 novembre 2007 à 15:17:34

                Citation : M@teo21

                Licence :



                Qt : c'est son point noir, tu ne peux l'utiliser que pour faire des programmes Open Source (et un particulier n'a pas les moyens de se payer la licence propriétaire).


                Je ne sais pas si çà marche pour les particuliers, mais pour les entreprises qui font moins de $200,000 de bénéfices (ou CA je ne sais plus) par an et qui ont moins de $200,000 de capital, elles ont 65% de réduction (Small Business).
                Qt Desktop Edition - 1 plateform passe de €2630 à €920.5

                Et puis comme goutted, je doute qu'ici beaucoup de gens veulent faire des softs proprio (font seulement de la sécurité par l'obscuration)
                • Partager sur Facebook
                • Partager sur Twitter
                  16 novembre 2007 à 17:29:09

                  Pour un débutant, ça n'a pas d'importance particulière. Moi non plus je comptais pas redistribuer, je le faisais pour moi. Il n'empêche que ça reste un point noir au niveau de ta marge de manoeuvre avec cette lib comparé à wx ;)
                  Mais les avantages de Qt sont pour moi supérieurs à cette limitation (car c'en est une) et c'est pour cela que j'ai choisi Qt.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                    16 novembre 2007 à 18:05:55

                    Ou sinon il y a l'api windows qui fonctionne uniquement sous windows et fonctionnera toujours sous windows puisque c'est la base et qu'il est native au système.

                    Avantage:
                    Contrôle total :D
                    Exemple: contrôle tout sur les fichiers avec les fonctions comme CreateFile(),ReadFile(),
                    contrôle total de tes fenêtres,des périphériques (contexte de périphérique,un contrôle total mais sans connaitre son fonctionnement) et autres,c'est la partie la plus basse après le noyau et les drivers.

                    Tu peux recodées toutes les biliothèques que tu veux.Que ce soit audio,graphique,3D et autres.

                    Tu peux faire tes propres format de fichier,tes propres format de fichier intégré au programme(comme les .rc sous windows en utilisant les ressources).

                    Tu peux récoltées des informations détaillé sur ton système,comme par exemple:
                    Perçevoir toutes les frappes provenant du clavier,sans pour autant que ta fenêtre liée à ton processus est le focus,idéale pour faire un keylogger.
                    Modifier le stade de ton processus
                    Lire les données des autres programmes
                    Modifier la priorité de ton processus

                    et plein d'autres choses.

                    (Après tu peux toujours utilisés les ressources et autres mécanismes haut niveau tout fait intégrés dans l'api win32,ce que je ne fait pas car il n'y aurait pas de plaisir à programmer avec l'api win32 ;) )

                    Désavantage:
                    non portable.
                    utilisable uniquement en C.

                    Après il existe des surcouches de cette API native au système,comme la MFC ou .NET qui te permet de l'utilisé en C++, mais bon... à ce moment là autant utilisées des surcouches portable(wxwidget ou Qt).

                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 novembre 2007 à 18:11:53

                      michealblancO > faut pas croire que l'API win32 est la même sur tous les systèmes windows d'autant plus que niveau facilité elle est loin derrière Qt.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 novembre 2007 à 19:51:52

                        Personnelement je préfère utiliser wxWidgets cela plus pour une raison de "feeling" qu'autre chose. Mais aussi quelque part parceque je sais que quoi que je fasse (soft libre ou non) j'ai droit d'utiliser wxWidgets (et je n'aurais pas besoin de réapprendre à maîtriser un autre framework).

                        Et contrairement à ce qui est dis par certains l'installation n'est pas particulièrement galère:
                        -installation via les devpaks (marche même pour C::B) qui a le mérite d'être avantageuse par le petit espace disque occupé ,on ne compile pas les lib's mais les libs ne sont que dans leur version GCC,
                        -la méthode wxPack pas de compilation non plus, lib's pour GCC et Visual (distinctes)
                        -compilation, c'est ce qui peux poser des problèmes.

                        Le développement de wxWidgets est soutenu, ce n'est pas un projet amateur :D .
                        Avantage non négligeable, wxWidgets a des bindings dans de nombreux langages (Python, Ruby, C#, C, D, Perl et d'autres)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 novembre 2007 à 22:27:07

                          Je viens de tester Qt, ça marche impec, et ça m'a l'air génial, et très clair au niveau du code, à en voir les exemples !

                          Donc, j'hésite toujours, entre wxWidgets, et Qt...

                          Et, si wxWidgets m'intéresse autant que Qt, c'est justement à cause de la license.

                          Citation : altic

                          Mais aussi quelque part parceque je sais que quoi que je fasse (soft libre ou non) j'ai droit d'utiliser wxWidgets (et je n'aurais pas besoin de réapprendre à maîtriser un autre framework).


                          c'est exactement ça qui me pousse à utiliser wxWidgets. Mais d'un autre côté, je ne sais pas si il est aussi bien que Qt : par exemple, peut-on prendre des captures d'écran avec, peut-on afficher une "info-bulle" à partir d'un "tray-icon" (icone de la barre en bas à droite pour windows XP)

                          Enfin bref, je suis dans le flou total, là, j'hésite vraiment...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 novembre 2007 à 1:20:03

                            Franchement les possibilités entre Qt et wxWidgets sont équivalentes oui. Je suis sûr que tu peux faire le tray-icon avec wx aussi.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                              17 novembre 2007 à 1:54:52

                              Citation : altic

                              Avantage non négligeable, wxWidgets a des bindings dans de nombreux langages (Python, Ruby, C#, C, D, Perl et d'autres)



                              Qt aussi a des bindings dans d'autre langage, mais je crois qu'il n'a pas pour le C# pas sur en tout cas :p

                              Sinon pour avoir des infos supplémentaires sur Qt un tit lien wikipédian par ici =)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 novembre 2007 à 12:03:38

                                Je connais pas tous les bindings de Qt mais y'en a plein c'est clair.
                                Apparemment y'en aurait même un pour le C, c'est vous dire ^^
                                • Partager sur Facebook
                                • Partager sur Twitter

                                If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                                  17 novembre 2007 à 12:38:50

                                  Mateo > il est même dans les paquets d'ubuntu (debian ?) sous le nom "Qtc" et puis bien sûr il y a aussi pyQt, rubyQt, ...

                                  Citation : altic

                                  Et contrairement à ce qui est dis par certains l'installation n'est pas particulièrement galère


                                  non c'est même facile, mais aucun code ne voulait compiler (cherchez l'erreur :-° )
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    17 novembre 2007 à 13:18:40

                                    Je suis d'accord avec altic, wxWidgets est bien moins difficile à installer qu'il n'y parait, surtout avec wxPacks, y'a pas plus simple, juste à se laisser guider, et au final, on a une intégration complète sous VS par exemple (dans mon cas).

                                    Et aucun souci de compilation. :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      17 novembre 2007 à 14:13:32

                                      A priori, je penche vers wxWidgets, mais bon...

                                      J'ai commencé Qt, et il y à un tuto du SdZ dessus, mais il y à aussi un tuto très complet sur wxwidgets (un topic du SdZ en parle)

                                      Bon, apparemment wxwidgets m'a l'air très puissant : Code::blocks l'utilise, VLC aussi, mais Qt est utilisé par VPN, et d'autres, à voir le tuto C++...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 novembre 2007 à 17:14:33

                                        Citation : palkeo

                                        Bon, apparemment wxwidgets m'a l'air très puissant : Code::blocks l'utilise, VLC aussi


                                        Citation : wiki VLC

                                        # The wxWidgets Interface (wx) is the default interface on Linux and Windows.
                                        # The Qt Interface (qt) will be the default interaface on Linux and Windows.


                                        :D (ps : la faute est d'origine et oui j'aime chercher la petite bête :p )

                                        Et puis Qt est très simple à apprendre au pire (non-sens) tu pourras l'apprendre par la suite :-°
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 novembre 2007 à 18:01:52

                                          wxWidgets est très simple à apprendre: au temps l'apprendre en premier :-° ...
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            17 novembre 2007 à 18:05:52

                                            Citation : altic

                                            wxWidgets est très simple à apprendre: au temps l'apprendre en premier :-° ...


                                            Tu peux argumter un peux stp? car autant dire à un mome que marcher c'est facile alors qu'il sait pas encore que ça consiste à mettre un pied devant l'autre. :-°
                                            Est-ce plus facile que Qt? Parce que facile ne veux pas dire "plus facile que...". (Oui, je sais : je fait chi** :p )
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              17 novembre 2007 à 18:10:32

                                              J'ai déjà dit que ça se valait. Je trouve le système d'évènements de Qt plus joli, mais celui de wx est tout à fait honnête.
                                              Le code minimal pour une application wx est plus gros que celui d'une appli Qt.

                                              A part ça cherchez pas qui est le meilleur, ça se vaut.
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                                                17 novembre 2007 à 18:22:12

                                                Citation : iCedd

                                                Citation : altic

                                                Avantage non négligeable, wxWidgets a des bindings dans de nombreux langages (Python, Ruby, C#, C, D, Perl et d'autres)



                                                Qt aussi a des bindings dans d'autre langage, mais je crois qu'il n'a pas pour le C# pas sur en tout cas :p


                                                Qyoto
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  17 novembre 2007 à 18:28:47

                                                  Les deux se valent...a part au niveau licence.

                                                  Quant a l'API Windows elle est tres puissante mais niveau complexitée...Qt et wx sont des jeux d'enfants a cotés.Et encore, ca c'est quant tu ne gere pas les threads manuellements :p

                                                  Et cette api peut etre utilisée dans quasi tous les langages (sauf les non compilés et ceux sur machine virtuelle), simplement en faisant des appels dll (user32, kernel32,etc...).Pour info je l'utilise actuellement sur DarkBASIC (langage haut niveau ressemblant au C) juste avec les dlls

                                                  Autre inconvenient : il faut bien connaitre windows...


                                                  Moi je te conseille wx, principalement pour la licence.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    17 novembre 2007 à 19:11:12

                                                    wxWidgets n'est pas, à mon avis (qui vaut ce qu'il vaut), ni plus compliquée à apprendre ni plus simple que Qt ^^ .
                                                    Il a par contre l'avantage d'avoir un tuto en français, très bien écrit, assez complet qui montre presque tous les aspects de wxWidgets (il manque aui, les DC et d'autres petits trucs, mais bon ils ne sont pas non plus utilisés dans chaque app').
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Quelle bibliothèque graphique ?

                                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                    • Editeur
                                                    • Markdown