[C++] Aux utilisateurs de Qt et/ou GTK+ .....

Aux utilisateurs de Qt et/ou GTK+ ..... [C++] - C++ - Programmation

Marsh Posté le 02-12-2002 à 21:32:58    

bonjour,
 
je cherche un "GUI toolkit" pour developper une appli sous windows (pour l'instant mais elle doit etre totalement portable donc exit les MFC) en C++.
 
Mes recherches m'ont plutot orienté vers GTK et QT. j'ai vu que QT était payant pour windows, mais si on fait abstraction de cela, lequel est le plus efficace, fournit le plus de widget, est le plus simple à programmer ?
 
merci

Reply

Marsh Posté le 02-12-2002 à 21:32:58   

Reply

Marsh Posté le 02-12-2002 à 22:10:43    

qt c'est de l'objet (c++)

Reply

Marsh Posté le 02-12-2002 à 23:02:23    

eristoff a écrit a écrit :

qt c'est de l'objet (c++)




 
oui je sais mais vu que je vais coder l'appli en C++, je peux utiliser indifferement GTK+ en C ou QT en C++ pour l'interface ...

Reply

Marsh Posté le 02-12-2002 à 23:24:06    

La version 2.3 de QT pour Windows est gratuite pour une utilisation non commerciale. Tu dois par contre mettre ton application en Open Source.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 02-12-2002 à 23:51:50    

Harkonnen a écrit a écrit :

La version 2.3 de QT pour Windows est gratuite pour une utilisation non commerciale. Tu dois par contre mettre ton application en Open Source.




 
 
ok mais quelles sont vos expériences avec ces 2 GUI toolkits ?

Reply

Marsh Posté le 03-12-2002 à 01:58:12    

mik a écrit a écrit :

 
ok mais quelles sont vos expériences avec ces 2 GUI toolkits ?




 
j'ai utilise pendant 4 mois 8h par jour gtk en C++ sous linux et cross-compile sous windows
je l'ai aussi utilise avant que je connaisse le C++ et la POO
 
j'ai utilise Qt sous linux sur un projet de 6 mois
 
resultat : je comprend meme que l'on puisse poser cette question !
Qt est a des annees lumieres de gtk
- la doc de gtk est pourrie (et la doc c'est essentiel)
- la syntaxe est tres lourde (a ce niveau c'est plus vraiment du C)
- y'a des bugs sous windows
- beaucoup de fonctionnalites sont manquantes ou chiantes a utiliser
- a utiliser en C++ c'est l'enfer
 
bon gtk a quand meme de bon cote :
- licence LGPL
- glade est vraiment sympa (encore que y'a pas de undo)
- libglade c'est genial et je n'ai pas trouve d'equivalent sous Qt
 
Qt a aussi des inconvenients :
- putain de preprocesseur de merde
- ne se base pas sur l'existant du C++ (reinvente la STL, pas de template, exception ect...)
-> du C++ castre, c'est con !
 
Bref si tu connais C++ et que tu maitrises la POO en general
Qt est de tres loin superieur
 
bon apres y'a toujours des acharnes du C...

Reply

Marsh Posté le 03-12-2002 à 03:04:21    

choppes QT designer de trolltech, ca te permet de faire des widgets facilement :o


---------------
Fervent admirateur de l'Empereur Palpatine. Pour un pouvoir fort et le règne de l'Ordre.
Reply

Marsh Posté le 03-12-2002 à 03:34:28    

Sushi a écrit a écrit :

choppes QT designer de trolltech, ca te permet de faire des widgets facilement :o




oui c'est l'equivalent de glade
mais libglade n'a pas d'equivalent
 
avec glade je fais un fichier XML de l'interface
dans mon programme j'utilise libglade pour lire dans mon fichier XML
quand j'execute mon programme c'est directement le XML de mon interface qui est lu grace a libglade
bref je n'utilise pas glade pour generer du code source, mais QUE du XML
 
avantages :
je separe le plus possible mon interface graphique du reste de mon code
 
je peux meme changer l'interface graphique avec glade et j'ai juste a relancer mon programme pour que son interface change completement (sans recompiler)
 
je perds moins de temps a la compilation parceque l'interface graphique n'est pas compile (et en C++ ca compte)
 
un gars qui ne sait pas programmer peut s'occuper de l'interface graphique
 
inconvenients : aucun
 
avec Qt je peux me toucher pour faire ca (enfin si y'a des trucs mais c'est pas ce que je veux)
 
avec la POO on recherche la modularite du code, libglade le permet encore plus.

Reply

Marsh Posté le 03-12-2002 à 12:38:30    

ok merci pour ton temoignage :)
donc ca fait :
QT 1 - 0 GTK
 
d'autres avis ?

Reply

Marsh Posté le 03-12-2002 à 15:49:30    

:bounce:

Reply

Marsh Posté le 03-12-2002 à 15:49:30   

Reply

Marsh Posté le 03-12-2002 à 16:34:07    

mik a écrit a écrit :

 :bounce:  




 
Bon, mon avis est spécial, car je ne connais pas GTK, mais je vais donc comparer QT à:
 
J'ai passé 6ans à developper sous MFC / Win32, et on commence au boulot à utiliser QT pour le portage sous UNIX (avec les MFC c'est possible, mais ça coute la peau des couil... )
 
Resultats:
 
Pour:
* QT c'est vraiment sympa contenu du prix
* Le QT designer est supérieur à l'editeur de resource/classe wizard de Visual Studio 6 ( pas de celui de .NET )
* Beaucoup de classes pratiques
* System de connection/slot vraiment génial et permet un niveau d'abstraction et de communication entre objects très interessant.
* J'avais peur au début, mais finalement, il y a plein d'exemple à télécharger sur le NET.
* Support efficace: Tu postes un bug, et les gas te repondent rapidement et le corrige egalement rapidement (c'est rare!)
 
Contre:
* Pas de support de STL en standard (déconseillé de le valider), ce qui est vraiment dommage quand tu veux faire du code portable, ce qui est le but de QT!!!
 
* Pas de support des exceptions en standard (idem, c'est vraiment très dommage).
 
* C'est payant pour la 3.0, et la 2.X est à mon avis trop limitée dans bien des domaines pour concurrencer un environment comme Visual; mais Visual, on s'en fout dans ce topic!  :D


---------------
In tartiflette, we trust!
Reply

Marsh Posté le 04-12-2002 à 12:16:28    

merci pour ton analyse ;)

Reply

Marsh Posté le 04-12-2002 à 23:15:30    

YungMakko a écrit a écrit :

 
Contre:
* Pas de support de STL en standard (déconseillé de le valider), ce qui est vraiment dommage quand tu veux faire du code portable, ce qui est le but de QT!!!
 
* Pas de support des exceptions en standard (idem, c'est vraiment très dommage).




 
heu j'ai pas compris l'histoire avec la STL
Utiliser les exceptions et la STL tout en utilisant la bibliotheque Qt ne m'a jamais pose de probleme
par contre que Qt ne se base pas sur ces 2 elements standard du C++ ca c'est clair que c'est tres dommage


Message édité par tanguy le 04-12-2002 à 23:15:49
Reply

Marsh Posté le 05-12-2002 à 09:21:11    

tanguy a écrit a écrit :

 
 
heu j'ai pas compris l'histoire avec la STL
Utiliser les exceptions et la STL tout en utilisant la bibliotheque Qt ne m'a jamais pose de probleme
par contre que Qt ne se base pas sur ces 2 elements standard du C++ ca c'est clair que c'est tres dommage




 
Oui en effet, tu as raison, c'est ce que je viens de me rendre compte (je débute vraiment avec QT, et j'ai sutout eu une overview des possibilité).  
 
J'ai fait un test avec exceptions et STL, ça à l'air de fonctionner. Alors je ne comprends pas bien les options d'installation de QT 3.0, qui spécifient (dans advance settings): Support STL, support Exceptions, support RTTI.
Je n'ai pas coché ces fonctionalités, et tout marche nickel pourtant  :heink: . J'ai recompilé QT sur une autre machine avec ces options cochées, et je n'ai pas vu de différences...  :pt1cable: !!???
Je vais peut être demander au support de Trolltech.
 
Des infos la dessus?  :bounce:


Message édité par YungMakko le 05-12-2002 à 09:21:41

---------------
In tartiflette, we trust!
Reply

Marsh Posté le 05-12-2002 à 10:05:23    

YungMakko a écrit a écrit :

 
Alors je ne comprends pas bien les options d'installation de QT 3.0, qui spécifient (dans advance settings): Support STL, support Exceptions, support RTTI.
Je n'ai pas coché ces fonctionalités, et tout marche nickel pourtant  :heink: . J'ai recompilé QT sur une autre machine avec ces options cochées, et je n'ai pas vu de différences...  :pt1cable: !!???
Je vais peut être demander au support de Trolltech.
 
Des infos la dessus?  :bounce:




aucune idee, j'utilise la version linux livre avec ma distrib :)
 
mais avant d'envoyer un mail, check les mailing lists (et la doc) y'a souvent la reponse.
http://www.trolltech.com/developer [...] index.html
 
ce qui est sur et certain c'est que l'on peut utiliser tout C++ avec la lib Qt : aucun probleme
y'a surement le pre-processeur de merde qui va chier avec certain outils qui vont pas reconnaitre signal et slot mais bon...

Reply

Marsh Posté le 05-12-2002 à 10:39:29    

Je développe avec QT depuis cet été à titre personnel (au boulot, ce sont des accros de la VCL) après avoir été longtemps un inconditionnel des MFC. Sous Windows, je n'ai testé que la version 2.xx, mon avis vaut donc uniquement pour cette version. Je suis actuellement en train de regarder la 3.1 sous linux sortie depuis peu.
 
Voici mon avis :
 
Avantages
* Conception objet remarquable et très bien pensée
* Gestion des évènements absolument géniale, basée sur des signaux, au lieu de ces immondes callback chères à Microsoft. En une seule ligne par exemple, je déclenche le remplissage automatique d'un QListView lorsque mon QSocket se connecte ! Ceux qui connaissent les délégués du C# apprécieront la simplicité d'emploi.
* Documentation très complète et très didactique. A aucun moment on est obligé de tatonner pour trouver ce que l'on cherche
* QT Designer, concepteur d'interfaces bien fichu, et générant un fichier XML des plus portables.
* Support des layout
 
Inconvénients
* Préprocesseur pourri, mais alors pourri ! Obligation de lancer une commande externe (moc) pour compiler uen classe QT, passage du fichier généré au compilateur, etc... Bref, vive les makefiles !
* Sous windows, n'utilise pas l'interface graphique standard mais réinvente tout. Ce qui donne aux applications windows développées sous QT un aspect "Windows 95" des plus moches, surtout quand tu es sous XP et que tu t'es cassé le cul à chercher le thème ultime ! Une fenêtre "old-style", ça dépareille un peu !
* Pas autant de sources exemples sur le net que pour les MFC
A ce propos, yungmakko, si tu as des liens, je suis preneur.
* Dans la documentation, la partie réseau est assez succinte (la classe QSocket n'est pas documentée par exemple)
* Pas de gestion des exceptions, et c'est dommage.
* Sous windows, obligation de compiler avec Visual C++ (pas de support de GCC)
 
En résumé, depuis que j'ai testé QT, je ne peux plus revenir aux MFC. Je ne connais pas GTK+.
Et je répète que mes commentaires ne sont valables que pour la version 2.3 sous Windows.
 
:hello:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 05-12-2002 à 10:45:26    

Harkonnen a écrit a écrit :

 
A ce propos, yungmakko, si tu as des liens, je suis preneur.
* Dans la documentation, la partie réseau est assez succinte (la classe QSocket n'est pas documentée par exemple)




 
www.sourceforge.com, il y a plein d'exemples basés sur QT... :wahoo:


Message édité par YungMakko le 05-12-2002 à 10:45:43

---------------
In tartiflette, we trust!
Reply

Marsh Posté le 05-12-2002 à 12:22:21    

Harkonnen a écrit a écrit :

 
* Préprocesseur pourri, mais alors pourri ! Obligation de lancer une commande externe (moc) pour compiler uen classe QT, passage du fichier généré au compilateur, etc... Bref, vive les makefiles !




meme si c'est transparent pour l'utilisateur, c'est toujours mieux sans
Si un jour il pouvait se servir de ca : http://libsigc.sourceforge.net/
 

Harkonnen a écrit a écrit :

 
* Sous windows, n'utilise pas l'interface graphique standard mais réinvente tout. Ce qui donne aux applications windows développées sous QT un aspect "Windows 95" des plus moches, surtout quand tu es sous XP et que tu t'es cassé le cul à chercher le thème ultime ! Une fenêtre "old-style", ça dépareille un peu !




tu peux retirer cet inconvenient de ta liste, avec Qt 3 y'a plus ce probleme
http://psi.sourceforge.net/gfx/pss_xp.png
 

Harkonnen a écrit a écrit :

 
* Pas autant de sources exemples sur le net que pour les MFC
A ce propos, yungmakko, si tu as des liens, je suis preneur.




En sachant que tout KDE est programme en Qt moi je trouve que ca fait pas mal d'exemples :)
http://kde.org/
 
et ici y'en a encore ~1500
http://apps.kde.com/rf/2/latest?si [...] 18d35ec3ca
 
bon c'est sur que c'est clairement pas aussi accessible qu'un site web avec des exemples
 

Harkonnen a écrit a écrit :

 
* Dans la documentation, la partie réseau est assez succinte (la classe QSocket n'est pas documentée par exemple)




bof moi je trouve pas ca mal documente
http://doc.trolltech.com/3.1/qsocket.html
 
entre Qt 2 et Qt 3 les classes existantes dans Qt 2 ont a 99% pas bouge, donc tu peux lire la doc un peu plus complete de Qt 3.1 en lieu et place de Qt 2
 

Harkonnen a écrit a écrit :

 
* Pas de gestion des exceptions, et c'est dommage.




I agree
 

Harkonnen a écrit a écrit :

 
* Sous windows, obligation de compiler avec Visual C++ (pas de support de GCC)




ca fonctionne aussi sous Borland C++ avec la version 3
et il doit y avoir surement moyen de bidouiller pour faire fonctionner sous mingw
ca fonctionne aussi sous Code Warrior il me semble
 
 
J'espere que Trolltech va prendre quelques initiatives pour faire evoluer la lib plus profondement en supprimant le preprocesseur, en se basant sur les templates, les exceptions et la STL plutot que de l'ignorer
le probleme c'est la compatibilite avec les precedentes versions
 
j'aurais voulu aussi une separation plus clair entre les differentes parties de la lib
y'a ca mais c'est pas "officiel"
http://www.uwyn.com/projects/tinyq/

Reply

Marsh Posté le 05-12-2002 à 12:24:35    

+10  :jap:  :jap:  :jap:


---------------
In tartiflette, we trust!
Reply

Marsh Posté le 19-04-2003 à 13:46:40    

un petit (gros) up pour donner l'occasion a ceux qui veulent apporter leur pierre a l'edifice !

Reply

Marsh Posté le 08-05-2003 à 01:02:30    

moi je conseille Fox toolkit.
www.fox-toolkit.org
 
je developpe dessus actuellement et c'est vraiment pas mal fait
ya les widgets qui s'updatent tout seul : l'etat d'un bouton ou d'une liste par exemple, en fonction d'une variable
on peut aussi linker un widget  une variable et le changement de l'un affecte l'autre automatiquement : linker une string a un textfield par exemple, on ecrit dans le textfield et ca chaneg la variable
 
ya aussi tout un systeme de message pour que les widgets pusisent dialoguer entre eux
 
bref c'est juste un ptit apercu des possibilités de FOX
 
j'ai jamais developpé sous Qt ni MFC ni GTK, mais j'ai fait pas mal de JAVA, au debut je voulais utiliser Qt mais comme c'es tpayant :/ donc je me susi rabattu sur FOX :]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed