QT vs MFC

QT vs MFC - C++ - Programmation

Marsh Posté le 05-05-2004 à 10:53:33    

bon pour commencer, windows et moi, on n'est pas copains, donc excusez la naiveté de mes questions...
 
donc, de ce que j'ai compris, QT est une librairie du meme genre que les MFC. mais c'est quoi l'avantage? ça fait quoi de plus? graphiquement, c'est lequel le plus "joli"? est-ce que QT permet d'utiliser des skins?
 
et question subsidiaire: c'est facile de porter une appli MFC vers QT, ou faut tout refaire?
 
merci de vos reponses et de votre comprehension.

Reply

Marsh Posté le 05-05-2004 à 10:53:33   

Reply

Marsh Posté le 05-05-2004 à 12:35:55    

Bon, pour tenter de faire simple:
 
QT:
 
- Avantages:
 
. Portable,
. Facile à apprendre,
. Plus proche de la philosophie objet,
. Moins stricte et obscur que les MFC pour le novice,
. Concepts des signaux/slots bcp plus simple que les callbacks MFC.
 
- Inconvénients:
 
. Peut devenir un peu bordélique (on peut rapidement faire n'importe quoi sans conception préalable),
. Payante  :ange: (et très chère pour Windows: 3500 euros...),
. le QTDesigner est une véritable merde,
. la doc n'arrive pas à la cheville du MSDN (mais est suffisante dans la plupart des cas).
 
MFC:
 
Pour les MFC je ne dirais pas qu'il y a des avantages/inconvénients (la plupart du temps les inconvénients sont dus à une mauvaise connaissance du fonctionnement de Windows et on a donc l'impression que toute l'architecture MFC occulte le fonctionnement réel de l'application, quand on fouille un peu, on tombe toujours sur ses billes).
 
Pour ma part je trouve l'environnement de développement MFC + VC++ 6.0 + MSDN (et codeguru/codeproject) bien plus agréable que tout ce qui se fait d'autre...
 
Toutefois, il est clair que les MFC ont un point faible de taille face à QT... la portabilité !
 
Lequel est plus joli ? -> dans la mesure ou QT est beaucoup plus simple à utiliser que les MFC/Platform SDK, tu pourras sans doute rapidement faire des trucs plus impressionant avec QT, toutefois, avec le temps, l'utilisation des MFC/API Win32 seront moins limitées...
 
Pour finir, tu peux oublier le portage MFC -> QT je pense...


---------------
- Pierre Baudelet -
Reply

Marsh Posté le 05-05-2004 à 12:53:59    

Ayant fait un peu des deux je dirais que QT est de loin supérieur à MFC :
- Beaucoup beaucoup plus simple (tout est logique et objet)
- Portable
- sous license GPL sous X (sous Linux par exemple)
 
>Pedro-2480 : "QTDesigner est une véritable merde"
Non je ne trouve pas..., de toute façon ya même pas besoin d'outil de ce style car la réalisation de fenêtre/widgets est tellement simple qu'on peut facilement le faire à la main sans outils de création graphique.  

Reply

Marsh Posté le 05-05-2004 à 12:55:37    

Ummon a écrit :


- sous license GPL sous X (sous Linux par exemple)


 
je trouve pas que ce soit un avantage, ça :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 05-05-2004 à 12:58:18    

kadreg a écrit :

je trouve pas que ce soit un avantage, ça :o


de toute façon c'est faux.
sous linux il y a 2 licences: GPL et non-GPL. tu peux choisir ton camps. et ça c'est un avantage.

Reply

Marsh Posté le 05-05-2004 à 13:02:12    

Citation :

de toute façon ya même pas besoin d'outil de ce style car la réalisation de fenêtre/widgets est tellement simple qu'on peut facilement le faire à la main sans outils de création graphique.


 
Besoin ou pas, le Designer n'est pas fini et ne devrait vraiment pas être vendu...car sous Windows (sujet de la discussion) c'est très loin d'être sous GPL...
 
C'est indéniable que les deux points forts de QT sont:
 
- Sa simplicité et le respect de la logique objet
- Sa portabilité (et encore avec 95% des machines utilisant des IHM sous windows...),
 


Message édité par pedro-2480 le 05-05-2004 à 13:05:15

---------------
- Pierre Baudelet -
Reply

Marsh Posté le 05-05-2004 à 14:47:28    

merci pour vos reponses  :bounce:  
 
donc si j'ai bien tout compris, si on a un developpeur MFC/windows confirmé sous la main, pas la peine de penser à QT, sauf si on veut migrer sous linux...
deja rien que le prix sous windows est redibitoire :(  
 
maintenant, j'aurai l'air moins bete quand mes collegues windowsiens me parleront de ça  :p  
 
ah puis tiens, autre petite question en passant sur les MFC: pour le moment, toutes nos applis ont un look windows. c'est facile de faire quelque chose d'un peu plus "custom" avec les MFC?
 
PS: vraiment dsl pour ces questions stupides... quelle idée aussi de nommer qqun qui vient de l'embarqué sans OS, à la tete de windowsiens  :pfff:

Reply

Marsh Posté le 05-05-2004 à 15:18:07    

Pedro-2480 a écrit :

Peut devenir un peu bordélique (on peut rapidement faire n'importe quoi sans conception préalable),


Tu veux dire que QT est tellement simple que l'on peut arriver à avoir un truc qui marche sans avoir à reflechir à l'archi pendant plusieures heures ? C'est un avantage ça

Pedro-2480 a écrit :


. le QTDesigner est une véritable merde,


 :heink:  :heink:  :heink: On ne doit pas avoir utilisé la même version de QtDesigner alors. Moi je trouve que c'est un vrai bijou, un exemple à suivre dans la conception d'interfaces.

Pedro-2480 a écrit :


. la doc n'arrive pas à la cheville du MSDN (mais est suffisante dans la plupart des cas).


Je trouve la doc largement suffisante moi. De toute façon, comme l'API est bien plus simple que celle des MFC, ce n'est pas un problème d'avoir une doc moins fournie que la MSDN car on n'a pas besoin de passer autant de temps dedans pour comprendre ce que va faire telle ou telle fonction :)

Reply

Marsh Posté le 05-05-2004 à 15:25:03    

Sujet sensible... garre aux trolls.
Y'a un article dépassé ici mais ça te donne une bonne idée de ce qu'un mec détestant les MFC peut penser :
http://phil.freehackers.org/kde/qt-vs-mfc.html
Tout n'est plus vrai, les MFC ont évolué. Y'a des trucs un peu exagérés aussi.

Citation :

graphiquement, c'est lequel le plus "joli"? est-ce que QT permet d'utiliser des skins?


Justement, QT ne fonctionne qu'avec des skins. ca ressemble à du Windows, mais ça n'en n'est pas : c'est un skin qui s'en approche. On peut avoir le look windows sous Linux et inversement.

Citation :

. Payante    (et très chère pour Windows: 3500 euros...),


$3700, soit actuellement ~3000 euros.

Citation :

le QTDesigner est une véritable merde


Je trouve aussi que c'est décevant pour un outil à ce prix, mais d'un autre côté, MFC est mal fouttu aussi, c'est loin de BCB.

Citation :

Non je ne trouve pas..., de toute façon ya même pas besoin d'outil de ce style car la réalisation de fenêtre/widgets est tellement simple qu'on peut facilement le faire à la main sans outils de création graphique.


Pas d'accord. On va bcp plus vite, même avec Designer.
A la main, c'est hyper lourd de se tapper les menus, statusbar, icones + toolbar, etc... Tout ça c'est qq minutes (et encore) avec un RAD.
Mais y'a des limites : dès qu'on veut employer autre chose qu'un composant standard. Et là moi je réserve la place avec une frame et je poursuis à la main. Mais pour tout le reste, c'est bien aggréable.
 
QT est sympa, mais c'est vrai que si à première vue il l'emporte de loin sur les MFC, au fil de l'utilisation c'est moins évident. Mon principal reproche, mis à part son prix et cet aspect utilisateur Windows = vache à lait, c'est son manque de composants et de documentation.
Y'a un site tout récent en français : prog.qt.free.fr
Mais sorti de trolltech, y'a pas grand chose, et niveaux composants c'est pas la joie. J'ai voulu utiliser récemment qwt (http://qwt.sourceforge.net/) et ça plante à la fin sous Windows. Ca illustre que les rares composants qu'on trouve sont peu testés en dehors de Linux, d'où des pblm.
Pour un autre composant, qmake m'a sorti un project VC++ que j'ai du pratiquement refaire.
En MFC y'a des tones de docs et de composants gratuits dispos, le web regorge d'exemples et de sites dessus. A la longue, ça compte...

Reply

Marsh Posté le 05-05-2004 à 16:32:41    

Citation :

Mais sorti de trolltech, y'a pas grand chose, et niveaux composants c'est pas la joie. J'ai voulu utiliser récemment qwt (http://qwt.sourceforge.net/) et ça plante à la fin sous Windows. Ca illustre que les rares composants qu'on trouve sont peu testés en dehors de Linux, d'où des pblm.  
Pour un autre composant, qmake m'a sorti un project VC++ que j'ai du pratiquement refaire.  
En MFC y'a des tones de docs et de composants gratuits dispos, le web regorge d'exemples et de sites dessus. A la longue, ça compte...


 
D'accord à 100 % avec toi... malgré leurs défauts (qui sont principalement dus à la difficulté supérieure à QT) les MFC sont vraiment plus fexibles sur le long terme (quand on prend tout en compte: prix, environnement de développement, doc, outils, articles, bouquins...)
 
On pourrait résumer et dire que QT est encore un peu trop jeune et a besoin de se standardiser encore un peu...
 

Citation :

Tu veux dire que QT est tellement simple que l'on peut arriver à avoir un truc qui marche sans avoir à reflechir à l'archi pendant plusieures heures ? C'est un avantage ça  


 
Dans l'industrie, tu peux pas te permettre de bidouiller, de taper des trucs et de te dire "cool ca marche...". Par exemple, le mécanisme des slots et des signaux est pour moi à la fois une grande qualité et un grand défaut de QT... sans conception/analyse/réflexion, tu as n'importe quoi (meme si ca marche)... si tu développes dans une ptite boite ou pour toi ca va, si c'est des projets un peu plus importants... hmm.... pas trop...
 

Citation :

:heink:  :heink:  :heink: On ne doit pas avoir utilisé la même version de QtDesigner alors. Moi je trouve que c'est un vrai bijou, un exemple à suivre dans la conception d'interfaces.  


 
QT Commercial 3.2.3... c'est deja mieux depuis la 3.2, QTDesigner arrive a démarrer sur la plupart des PC... :D  
 
Je maintiens que faire des trucs un peu plus compliqués qu'un bouton et un controle entraine de nombreux problèmes...je suis d'accord que les outils fournis par Designer sont géniaux dans le principe, mais concrètement ils ne fonctionnent/s'interfacent pas bien (du tout) avec les autres éléments de l'environnement de développement...


---------------
- Pierre Baudelet -
Reply

Marsh Posté le 05-05-2004 à 16:32:41   

Reply

Marsh Posté le 05-05-2004 à 16:52:21    

Citation :

Par exemple, le mécanisme des slots et des signaux est pour moi à la fois une grande qualité et un grand défaut de QT... sans conception/analyse/réflexion, tu as n'importe quoi (meme si ca marche)... si tu développes dans une ptite boite ou pour toi ca va, si c'est des projets un peu plus importants... hmm.... pas trop...


Je suis aussi d'accord. POur moi, les messages devraient circuler de bas en haut => parent-enfant.
Avec les slots, tu peux faire du enfant1<->enfant2 => frere->frere, ou pire encore.

Reply

Marsh Posté le 05-05-2004 à 16:52:53    

Pour ma part, ayant realisé des projet et des stages sur les 2, je prefere  QT !!
 
QT, c'est du pur object !! la programation qui en decoule est vraiment propre pour un peu qu'on est pensé a l'architecture de l'aplication. Concernant la doc, l'essentiel est la et c'est tres bien expliqué.  
 
qtdesigner est juste une interface, qt s'utilise avec ce que tu veux (sous linux !!) kdevelop et les autres
 
a contrario, les MFC sont pas si mal mais je trouve l'ensemble beaucoup trop bordélique et la doc est miserable.
 
Je suis actuellement en train de realiser une interface pour integrer des outils de traitement d'images et franchement un projet sous visual  
c++ (le 7 ! hum j'adore  :pfff: ) c vraiment la merde (c pas vraiment objet, c gavé de macros )
 
Enfin c mon avis  

Reply

Marsh Posté le 05-05-2004 à 17:00:35    

Citation :

l'essentiel est la et c'est tres bien expliqué


Moi aussi je préfère QT pour le développement. Le hic, c'est que dès que tu as besoin de autre chose que l'essentiel, ça se corse.

Citation :

sous visual  
c++ (le 7 ! hum j'adore    ) c vraiment la merde (c pas vraiment objet, c gavé de macros )


Si tu as VC++7, pkoi ne pas utiliser .Net ?

Reply

Marsh Posté le 05-05-2004 à 17:10:45    

c vrai que ca se corse, mais tout l'interet est dans la difficulté !!  :pt1cable:  
 
connait pas .Net et j'ai pas envie de me lancé la dedans (faute de temps)
par contre je veux bien savoir ce que ca apporte d'utiliser .Net
 

Reply

Marsh Posté le 05-05-2004 à 17:37:57    

Ca apporte que tu utiliseras pas un truc obsolete.
A+,

Reply

Sujets relatifs:

Leave a Replay

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