Quel GUI en C++? - C++ - Programmation
Marsh Posté le 07-09-2004 à 12:49:05
utilise wxWidgets www.wxwidgets.org
puis wxglade pour faire l'interface
Marsh Posté le 07-09-2004 à 12:56:02
wxWidget est pas mal, car relativement simple et avec un 'look' natif sur toutes les plateformes (Windows, Mac, *nix)
GTK 2 a l'air sympa, également multiplateforme, jamais essayé
Qt est très puissant, gratuit sous Mac et *nix mais payant sous Windows, toujours multiplateforme, look peu natif (une appli Qt a le même look partout, mais 'tranche' avec l'environnement)
ATL/WTL sont des libs windows only, non portables, normalement plus simples que l'ignoble MFC
Marsh Posté le 07-09-2004 à 14:52:37
Masklinn a écrit : wxWidget est pas mal, car relativement simple et avec un 'look' natif sur toutes les plateformes (Windows, Mac, *nix) |
ok, je savais pas que Qt était payant sous Windows
Marsh Posté le 07-09-2004 à 19:52:27
J'en ai essayé qlq unes dont MFC et je suis resté sur wxWindows. C'est globalement inspiré de l'API Win32 (DC, MDI...) mais en plus simple, et ça ajoute qlq trucs d'autres plateformes comme les threads non joignables. En gros t'as 99% des fonctions dispos sous windows, les autres ports (Mac, Unix...) étant moins complets.
A noter que contrairement à MFC et compagnie ces Framework multiplateforme passent au dessus de toute évolution. MFC est condamné à terme par .NET alors que wxWindows sera porté en .NET quand il le faudra et ça restera transparent pour l'utilisateur.
Autre énorme point positif de wxWindows : la doc. Elle est superbement bien écrite et présentée, t'as toutes les classes sous la main en un coup d'oeil. La version .chm est encore meilleure. Ca tranche avec la MSDN si riche qu'elle en devient labirynteuse
edit : wxWidgets = wxWindows, ils ont changé de nom à cause de MS, comme pour Lindows.
Marsh Posté le 07-09-2004 à 19:59:34
ReplyMarsh Posté le 08-09-2004 à 00:40:52
jesus_christ a écrit : Autre énorme point positif de wxWindows : la doc. Elle est superbement bien écrite et présentée, t'as toutes les classes sous la main en un coup d'oeil. |
J'étais justement pas trop d'accord du temps où je m'y suis frotté. En particulier la doc sur leur contrôle tableau était périmée et j'ai vite appris à me fier au code source... Ca a peut être changé, mais pas au point de ressembler à celle de Qt qui est elle vraiment très bien faite.
Sinon j'ai trouvé wxPython sympa et plus facile à prendre en main que son papa en C++.
Note : Qt est payant quelque soit la plateforme pour des projets commerciaux.
Marsh Posté le 08-09-2004 à 09:53:42
HelloWorld a écrit : J'étais justement pas trop d'accord du temps où je m'y suis frotté. En particulier la doc sur leur contrôle tableau était périmée et j'ai vite appris à me fier au code source... Ca a peut être changé, mais pas au point de ressembler à celle de Qt qui est elle vraiment très bien faite. |
On peut être d'accord là dessus je pense
La doc de wxWindows est bien faite et plutôt complête, mais pas parfaite loin de là, il y a qq manques
Citation : Sinon j'ai trouvé wxPython sympa et plus facile à prendre en main que son papa en C++. |
Oui mais ca c'est parce que le Python est plus simple
J'ai commencé avec wxPy, je trouve que le passage à wxW s'est relativement bien passé, aux spécificités du C++ près (appels de fonctions plus chiants et surtout enregistrement de callbacks bien plus merdiques en C++ qu'en Python)
Citation : Note : Qt est payant quelque soit la plateforme pour des projets commerciaux. |
Mais je suis pas sur qu'il cherche à faire une app commerciale
(le posteur initial)
Mais imo ca reste une GUI lib efficace et relativement puissante
Et j'aime énormément le fait qu'elle soit suffisament simple pour être codable sans RAD et sans problème
(ce qui n'est pas le cas de toutes les libs de GUI)
Marsh Posté le 08-09-2004 à 17:01:08
Citation : normalement plus simples que l'ignoble MFC |
Marchent très bien les MFC (y a que mask qui sait po s'en servir )
Jette un oeil chez http://www.codeguru.com/Cpp/ ça peut donner des idées aussi.
Marsh Posté le 08-09-2004 à 17:09:10
bouyak a écrit :
|
1- les MFC c'est de la merde, c'est pas pour rien que MS a arrêté de développer cette bouse pour ATL/WTL et WinForms
2- les MFC, si t'as pas de RAD même pas t'essaies de coder une interface avec cette chierie
3- les MFC, ca prend 3 fois plus longtemps à développer que n'importe quoi d'autre, et je parle pas du maintient de l'application
4- dégage espèce de sale maître des ténèbres, sinon fessée
Marsh Posté le 08-09-2004 à 18:19:11
bouyak a écrit : Marchent très bien les MFC (y a que mask qui sait po s'en servir ) |
euh, ouais... si tu veux, je posterais le source du plugin Winamp que je suis en train de coder pour mettre à jour la signature du forum. full MFC. et ben je peux te dire que c'est vraiment pas beau à voir !
et vas y que je te fous des macros ici, et vas y que je t'oblige à utiliser du C là alors que je code en C++...
Marsh Posté le 09-09-2004 à 00:10:51
Moi je te conseillerais QT si c'est pas pour une appli commercial sous windows c'est la meilleurs solution
QT est portable , simple , completement orienté objet et trés bien documenté .Le petit probleme avec QT c'est que la version non commercial windows est la 2.3 est sous linux la 3.x mais ayant moi meme utilisé la 2.3 pour faire un editeur de map (genre worldcraft avec fentre openGl et tous) je peux te dire que cette bibliotheque a beaucoup de fonctionnaliés simple et rapide a mettre en place
Marsh Posté le 13-09-2004 à 01:13:57
Masklinn a écrit : |
Il y a une version Qt 3.2 non commerciale pour Windows donnee avec le livre 'C++ Gui Programming With Qt 3'
Qt a toujours un look natif: sous windows il prend automatiquement les themes de winXP et sous MacOS c'est du natif aussi (c'etait pas le cas il y a encore quelques temps). Si Qt c'est pas du natif (tout au moins une partie non negligeable dans les versions recentes) je vois pas alors dans quelle categorie classer SWING.
Et puis il y a ca aussi: http://kde-cygwin.sourceforge.net/qt3-win32/ meme si c'est en version alpha.
Marsh Posté le 13-09-2004 à 10:09:01
Citation : Il y a une version Qt 3.2 non commerciale pour Windows donnee avec le livre 'C++ Gui Programming With Qt 3' |
On s'en fout, ya pas de version gratos non limitée téléchargable stou
Citation : Qt a toujours un look natif: sous windows il prend automatiquement les themes de winXP et sous MacOS c'est du natif aussi (c'etait pas le cas il y a encore quelques temps). |
QT c'est de l'imiation de natif
Marsh Posté le 13-09-2004 à 10:20:28
tanguy a écrit : Et puis il y a ca aussi: http://kde-cygwin.sourceforge.net/qt3-win32/ meme si c'est en version alpha. |
Es-tu arrivé à quelque chose avec ça ? J'y ai jeté un oeil y'a 5/6 mois, je suis arrivé à rien.
Marsh Posté le 13-09-2004 à 15:56:22
Masklinn a écrit : [quote] |
Si c'est du natif. Par exemple sous Mac c'etait de l'imitation mais depuis ils sont passe au natif. Enfin si tu veux pas me croire m'en fou
Marsh Posté le 13-09-2004 à 16:15:28
Sous XP ils utilisent uxtheme (donc c'est pareil pour le fond, mais les font / postion du text etc... ça peut varier), mais si tu désactives les themes ou que tu es sous <= Win 2000, c'est de l'imitation.
Marsh Posté le 13-09-2004 à 17:01:54
En fait pour Qt, c'est pire que de l'imitation, sur certains contrôles(listview ...), Qt dessine puis les thèmes sont appliqués par dessus. Sur une carte graphique un peu ancienne, merci les perfs d'une appli Qt avec les thèmes en rapport d'une appli native XP.
Marsh Posté le 05-11-2004 à 01:02:48
oki, je vais donc me tourner vers Qt pour mon projet (non commercial )
cependant, dans le proj je dois analyser une partition de musique scannée et reconnaître les notes, est-ce que les GUI comme Qt me permettent une analyse totale de l'image (au pixel près, etc)?
ou est que je dois passer par d'autres libs comme OpenGL
Marsh Posté le 05-11-2004 à 10:11:03
PopolLeMagnifique a écrit : Moi je te conseillerais QT si c'est pas pour une appli commercial sous windows c'est la meilleurs solution |
Je plussois moultement pour Qt, vraiment bien.
Marsh Posté le 05-11-2004 à 10:13:33
Player_One a écrit : oki, je vais donc me tourner vers Qt pour mon projet (non commercial ) |
Qt est capable de faire pas mal de petite chose au niveau des images.
Tu peux par exemple charger les images au format jpg ou png en une seule ligne, et la structure dans laquelle c'est stockée permet sans souci de regarder ce qu'il y a dans chaque pixel.
Marsh Posté le 05-11-2004 à 12:10:26
ReplyMarsh Posté le 05-11-2004 à 16:49:35
bouyak a écrit :
|
Microsoft Fait Caca.
Marsh Posté le 07-11-2004 à 19:23:44
Je suis assez d'accord pour dire que les MFC c'est imbuvable, l'ayant utilisé par deux fois.
Je conseille ce qui a déjà été dit : wxWidgets.
Il ya aussi FOXToolkit : http://www.fox-toolkit.org
qui est aussi en C++ et qui à la différence de wxWidgets conserve le même look-and-feel sur les différentes plateformes. La documentation de chaque composant est trop succinte et non détaillée, c'est le gros point noir. Mais les tutorials sont corrects pour débuter, et comprendre les mécanismes de l'API.
Marsh Posté le 07-11-2004 à 21:06:40
Mais vous trouvez wxWidgets si éloigné que ça des MFC ? Sans déconner c'est vachement inspiré quand même. C'est de loin le tk le plus proche des MFC que je connaisse.
Marsh Posté le 07-11-2004 à 22:00:40
if (wxDocument == CDocument && wxDC == CDC)
cout << "Why not ?" << endl;
Marsh Posté le 07-11-2004 à 22:35:45
HelloWorld > je sais pas, j'ai réussi a coder du wx sans RAD et sans problème, des MFC...
Marsh Posté le 07-11-2004 à 22:43:14
ReplyMarsh Posté le 07-11-2004 à 23:09:54
gaille a écrit : Effectivement, car le gif est pas libre de droits... |
si.
edit: http://www.unisys.com/about__unisys/lzw
Marsh Posté le 07-11-2004 à 23:35:21
Masklinn a écrit :
|
wxWindows ce n'est pas natif sous Linux. Moi je bosse sous KDE et j'aime pas voir une appli gtk moche apparaitre sur mon écran
PS : et les seules fois ou j'ai essayé de coder avec, j'ai eu l'impression de faire directement du Win32.
Marsh Posté le 08-11-2004 à 00:32:24
Il y a quand même 3 ports différents de wx sous Unix (Motif, X11 et GTK)
Après, les mecs de KDE ont décidé de faire les lourds et d'utiliser Qt...
Ben libre à toi de te lancer dans un bind wxQt
Marsh Posté le 08-11-2004 à 03:30:21
Kristoph a écrit : wxWindows ce n'est pas natif sous Linux. Moi je bosse sous KDE et j'aime pas voir une appli gtk moche apparaitre sur mon écran |
KDE est pas plus natif sous Linux que ne l'est GTK
Marsh Posté le 08-11-2004 à 03:34:14
Masklinn a écrit : |
Ouai... se lancer dans un binding C++ d'une autre lib C++ déjà multi-OS.
Marsh Posté le 08-11-2004 à 13:17:54
Il y a aussi le Fast Light toolkit.
A consulter:
http://www.geocities.com/SiliconVa [...] itool.html
http://freshmeat.net/articles/view/928
http://slashdot.org/article.pl?sid [...] ode=thread
Marsh Posté le 08-11-2004 à 13:46:42
HelloWorld a écrit : Ouai... se lancer dans un binding C++ d'une autre lib C++ déjà multi-OS. |
Spa moi qui veut un wx avec look Qt
Marsh Posté le 08-11-2004 à 13:48:59
ReplyMarsh Posté le 08-11-2004 à 13:55:36
Masklinn a écrit : Spa moi qui veut un wx avec look Qt |
Je sais bien, je complétais ta réponse
Pour les autres tk, si y'en a qui sont motivés, j'en ai une petite liste que j'ai pas encore testé :
http://vcf.sourceforge.net/
http://www.torjo.com/win32gui/
http://www.litwindow.com/Library/index.html
Marsh Posté le 08-11-2004 à 13:59:37
Kristoph a écrit : Sur mon bureau a moi, si. |
Non
le seul truc qu'on peut considérer comme natif sous ninux c'est X11, et encore
KDE, c'est du Qt, pas du natif
(en fait je dirais que le natif sous ninux c'est Curses )
Marsh Posté le 08-11-2004 à 14:02:44
Kristoph a écrit : Sur mon bureau a moi, si. |
Je vois... C'est quoi ta définition de natif ? Pour moi (nous ?) natif c'est nativement intégré au noyau Linux. Natif ça veut dire que sur ton bureau, le mien, le sien, c'est dispo. C'est pas le cas de KDE.
Citation : (en fait je dirais que le natif sous ninux c'est Curses ) |
+1
Marsh Posté le 07-09-2004 à 11:57:54
Je me demandais quelle GUI était la mieux pour faire un proj en C++?
Y'en a-t-il une mieux que les autres ou se valent-elles tous?
---------------
640K ought to be enough for anybody.