(Courriels de diversion: <tenaillee@gendarmions-enterra.com> <enchaînerai@valeur-obligerai.com> <developperent@musculations-prorogeras.com> <mecaniserons@vides-toute-puissance.com> <eveillez@epelees-typologie.com> <divergeant@grignotera-gerons.com> <tributaire@sous-payerai-rabattrions.com> <derailles@empêches-muterais.com> <martelage@condisciples-rapprendrez.com> <ergoterent@reorienterions-impayes.com> )
Daniel Sidobre wrote: > Vous avez ecrit (dans votre message du 15 5 2003) > > > Pour Qt, je ne partage pas ce point de vue. A moins que mon > > > point de vue ne soit faussé par de mauvaises utilisations > > > de Qt. (loin de moi l'idée de lancer un troll). > > Tu peux préciser ? > > Parce que j'ai même réussi à convertir un mec à fond C-only au > > C++ grâce à Qt. Alors, évidemment, c'est comme tout, Qt a ses > > limites (en particulier, les premieres fois, mettre en place le > > système de build est lourd). Mais j'aimerais sincèrement savoir > > ce qui t'a bloqué. > > Puisque l'on m'invite à préciser, je viens de passer 2 minutes dans le > code de qt et j'en ai sortie deux extraits. Je peux pas m'empêcher de me jeter dans le troll ;-) Mais vu que je vais argumenter, ce ne sera pas un troll ;-) Tu dis que ton point de vue est peut-être une mauvaise utilisation de Qt. Par contre, le seul exemple que tu nous donnes, c'est la lecture des sources. Je veux bien que tu n'aimes pas les macros (moi non plus). Mais à l'utilisation, tu n'utilises que quelques mots-clés supplémentaires par rapport au C++ : Q_OBJECT (macro), slots, signals. Je crois que emit() et connect() sont des fonctions normales. Sinon, à l'utilisation, le vrai truc qu'on peut reprocher à Qt, c'est l'usage de moc. C'est chiant, mais en même temps, ça permet de conserver un code source propre (le tien). Autre chose très chiante : les items des QListView ou QTable ne sont pas des QObjects. Du coup, on ne peut pas en faire ce qu'on veut (c'est sûrement pour des raisons de performances). Encore un truc qui peut être emmerdant : dès qu'on a besoin d'un comportement un peu spécifique, il faut hériter les classes de base, pour redéfinir une fonction virtuelle. Malheureusement, quand on utilise QT Designer, ça t'oblige aussi à créer un plugin pour garder un certain confort d'utilisation. Mais même comme ça, il reste quelques bugs. Par contre, j'arrive très bien à supporter tout ça. Qt est de loin la bibliothèque avec laquelle j'ai eu le plus plaisir à programmer. La doc est complète (mais pourquoi vas-tu lire le source à la fin ?! ;-), les comportements définis, l'API cohérente. Souvent, il n'y a pas besoin de lire la doc. Tu appelles la fonction avec le nom de l'action qu'elle est censée exécuter, et ça marche deux coups sur trois. Dans beaucoup d'autres APIs, tu sais quelle fonction tu cherches, ça fait trois fois que tu vas dans la doc pour la trouver, mais tu y retournes encore pour trouver l'ordre des paramètres ou même son nom complet. Moi je dis bravo à Trolltech. Dernière chose : le seul vrai reproche que j'ai à faire concerne le système de licence. Un intérêt certain d'utiliser Qt est de faire du multi-plateformes. Avec la licence propriétaire pour la version Windows, ça limite la diffusion d'outils. Est ce que quelqu'un a jamais entendu parler d'une certaine gentillesse de Trolltech envers les développeurs de produits libres qui veulent diffuser pour Windows ? Exemple concret : les éditeurs pour le moteur de jeu Ark (projet Nekeme prod.) pourraient être réalisés en Qt si on avait la possibilité de compiler au moins des binaires pour la version Windows. Si Trolltech "donnait" une licence à un développeur Nekeme ou Ark/Arkhart, ça pourrait débloquer le problème. Je sais, le mieux est de leur demander directement, je sais, je suis un gros naïf, mais on peut rêver non ? ;-) -- tharibo AT nekeme.net http://www.nekeme.net : Promouvoir le libre ludique "Le temps ne fait rien à l'affaire, quand on est con, on-est-con !" -- Georges Brassens -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>