Et gtkmm... qu'en pensez vous?
Personnelement je trouve son API agréablement objet.
Version imprimable
Et gtkmm... qu'en pensez vous?
Personnelement je trouve son API agréablement objet.
Que voulez-vous dire au sujet de WxWidget? C'est moins "propre"?
Et Python, vraiment intéressant? On peut l'interfacer avec du C++?
La pompe à message est par exemple entièrement crée sous forme de macro. Avec Qt, comme il s'agit des signaux et slots, c'est plu agréable à utiliser.
Sous Python, j'utilise en revanche wxPython à cause de la licence et du fait que pour le coup, la gestion des évènements est très bien faite. pyQt est bien la doc est trop vieille (et il n'est maintenu que par une seule personne qui s'occupe aussi de SIP, un concurrent de SWIG écrit pour Qt).
J'utilise depuis 6 mois WxWidget, je trouve ça pas aml... Je n'ai jamais utilisé Qt, donc je peux pas juger, je suis obligé de vous faire confiance ! ;)
Alp, je regarderai demain Boost.Python. Mais on peut sérieusement envisager de construire un logiciel entier (assez gros projet), en faisant l'interface IHM sous Python, avec la partie algo en C++?
Quelqu'un d'entre vous l'a t-il déjà fait?
J'ai entendu bcp de bien sur Python, il est temps que je m'y mette ! :D
Le gros point négatif pour l'instant de Boost.Python et de SWIG, son collègue plus versatile et moins spécialisé, c'est qu'il n'y a pas de tuto sur le net vraiment complet. D'ailleurs, c'est compliqué de gérer les types natifs Python et C++ de concert, donc encore moins les types utilisateurs.
Mais ça se fait tout de même :)
J'ai regarder rapidement boost.python, et j'ai compris que c'était pour générer un code utilisable par python avec bjam...
Donc si j'ai bien compris, c'est pour utiliser du C++ dans du python (et non l'inverse), et faut donc utiliser un intermédiaire (bjam) comme Qt (ui / moc).
es que je me trompe?
La Doc recomande les macros , mais on peut utiliser Connect si on le souhaite.
Je ne vois pas où wx est moins abouti que Qt.
Pas de designer officiel , pas un mais plusieurs :
http://www.wxwidgets.org/wiki/index....on_Development
C'est ca la possibilité du choix. Avec Qt , c'est Qt designer ou rien.
Oui, tu te trompes :)
On peut faire les deux, C++ dans Python et Python dans C++. Et bjam, c'est un cmake/Scons/automake -like, rien d'autre. Il n'y a pas vraiment de préprocessing ni rien (contrairement à SWIG qui génère un wrapper qui devra être compilé après)
Ok merci (j'ai vu aprés que python vers C++ est possible).
Du coup une question, es compliqué de scripter un code C++ en utilisant python avec boost.python?
Par contre dans le hello word il utilise bjam pour gener un hello.pyd... Ce n'est pas une sorte de préprocessing?
Non, en fait il faut créer une DLL, pour python 2.5 avec Windows, elle doit avoir pyd comme extension.
Scripter un code C++ depuis Python est très simple à faire à partir du moment où les données C++ (autres qu'entier, flottant) ne remontent pas vers Python. Avec SWIG et Boost.Python, un module Python sera créé (il faut tout de même écrire à un moment ce qui sera wrappé et ce qui ne le sera pas) dans lequel il y aura les fonctions qu'il sera facile d'appeler. C'est quelque chose du style que Civilization 4 fait.
ca limite pas mal les possibilités non?
Du coup faut une sorte de class interface qui contiens tout ce que python pourra faire avec le code fournie?
Par exemple si python fait une interface qui va comparer deux images. Le code de chargement et de comparaison sont dans une lib C++, faudra créer une class qui va interfacer ce que va faire l'ihm?
Je n'ai pas dit que c'était impossible, j'ai dit que ce n'était pas aussi simple que simplement dire que la fonction serait accessible depuis Python. Par exemple, si on prend les tableaux de Numpy, il faut dire en C++ qu'on va utiliser le pointeur du tableau et là, soit il n'est valable que pendant le temps de l'appel de la fonction, soit on enregistre le fait qu'on ait une référence supplémentaire, mais il faut aussi interfacer le code C++ pour qu'il accepte un tel tableau.
C'est là où ce n'est pas aussi simple.
Mais par exemple, si tout est en C++, y compris la lecture d'une image, on lit deux images et on récupère 2 objets images et on les réinjectes dans un filtre par exemple, et ça se fera très bien. On ne pourra juste rien modifier directement en Python.
Comme dit, pas forcément. tout dépend ce que tu veux mettre dans ton IHM. Si tu as des widgets d'affichage, tu peux très bien les laisser en C++ et y accéder de manière transparente en Python sans savoir si ce sont des patates ou des carottes.
Oui, j'ai vu ça.
C'est de la mauvaise foi ...
Oui mais Qt Designer est quand même totalement suffisant...
Choisir c'est bien beau, mais bon ... Je trouve Qt un cran au-dessus de wx.
Pourtant j'ai beaucoup utilisé wx, mais je préfère Qt, vraiment.
Non ,je le pense sincérement.Citation:
C'est de la mauvaise foi ...
Pour ce que j'ai utilsé de Qt ('petite' application 'normale') j'ai toujours trouvé un équivalent chez wx.
Après il est vrai que je n'ai ni exploré la doc de Qt en profondeur ni celle de wx pour trouver leurs composants 'exotique'.
Question de gout.Citation:
Oui mais Qt Designer est quand même totalement suffisant...
Choisir c'est bien beau, mais bon ... Je trouve Qt un cran au-dessus de wx.
Pourtant j'ai beaucoup utilisé wx, mais je préfère Qt, vraiment.
( Il y a une faute de frappe dans ta "Localisation" David, oublié un r à France )
Oui bien sûr c'est une question de goût.
Mais Qt a un aspect bien plus professionnel, non ?
Et inversement ;)
Mais Qt propose tout de même plus de versatilité, rien que pour les styles par exemple, que wx (qui reste cantonné à GTK+ et au feeling Windows sous... Windows)
Je ne dirais pas plus professionnel mais plus architecturé (séparation des bibliothèques, meilleure orientation objet, ...)
Mais oui, c'est une histoire de goût et d'approche du C++ (si on vient du C, on appréciera sans doute plus wxWidgets et si on est plus C++ dur, peut-être qu'ons era plus Qt).
Oui, je pense qu'il y a du vrai dans ce que tu dis.
:oops: Corigée,merci.
Reste a définir ce qu'on entend par professionnel.
Question conne mais ca veut dire quoi versatilité?
C'est pas exactement ca , mais wxSkin se rapproche : http://www.upcase.de/wxSkin.htmlCitation:
rien que pour les styles par exemple, que wx (qui reste cantonné à GTK+ et au feeling Windows sous... Windows)
séparation des bibliothèques :Citation:
Je ne dirais pas plus professionnel mais plus architecturé (séparation des bibliothèques, meilleure orientation objet, ...)
On links wx par partie .
Pour preuve regarde ce que te sort sous linux : wx-config --libs
meilleure orientation objet :
Voici l'arbre d'héritage de wx : http://img.codeblog.powa.fr/wxposter.png
Sans doute,car j'ai commencé par le C.Citation:
Mais oui, c'est une histoire de goût et d'approche du C++ (si on vient du C, on appréciera sans doute plus wxWidgets et si on est plus C++ dur, peut-être qu'ons era plus Qt).
Il y a aussi un autre point. Trolltech est une boîte qui doit vivre (ce qui n'est pas le cas de wxWidgets), donc Qt doit rester à la page et être devant les autres.
Ah oui, j'ai un truc que Qt a et que wxWidgets n'a plus : le canevas (et avec gestion des transformations logiques, une gestion des positions, ...). L'intérêt est aussi qu'on a pas à chercher dans une bibliothèque externe (pour wxSkin), puisque le style est quelque chose de natif sous Qt (et sans parler des feuilles de style CSS).
C'est vrai.
Je ne vois pas te trace dans la doc.Citation:
Ah oui, j'ai un truc que Qt a et que wxWidgets n'a plus : le canevas (et avec gestion des transformations logiques, une gestion des positions, ...).
Apres , j'utilse peut être un mauvais nom.
Ce n'est pas une bibliothèque externe, c'est un plugin.Citation:
L'intérêt est aussi qu'on a pas à chercher dans une bibliothèque externe (pour wxSkin),
Oui , un seul style (et que je trouve moche en plus), c'est l'un des reproches que je lui fait.Citation:
puisque le style est quelque chose de natif sous Qt
Là , j'admet , je n'ai pas encore d'équivalent.Citation:
et sans parler des feuilles de style CSS).
Quoi que , les interface par xrc pourrait s'en raprocher (mais d'assez loin).
Il y a une page dédiée dans la doc. Cherche QCanvas, c'est très compleT. cE qui s'en rapproche le plus était OGL, et encore, de très loin.
?? Tu veux dire le style de wxWidgets est moche, c'est ça ? Parce que Qt vient avec plusieurs styles différents et encore plus sous Windows.
Par expérience, si tu veut faire une IHM vraiment personnalisé et robuste avec QT N'UTILISE PAS QT DESIGNER. Ou alors trés peu. ça marche pas toujours comme tu le veut. Faire tout a la main est aussi simple et bien plus robuste qu'avec designer. Un exemple est que l'on ne peut nomer les layout avec designer, et l'on perd des possibilité comme de parcourir les "arbre de structure" de l'IHM .
Designer est super pour faire des chose trés simple, comme tout les autre ide pour wx ou C# ou autre, ou pour commencer.
De plus Qt aide beaucoup sur la compréhension du C++.
Versatile en français, ça veut dire changeant et c'est plutôt péjoratif. En anglais le sens n'est pas tout à fait identique, ça veut dire polyvalent. Je pense que c'est ce que voulais dire Miles.
C'est sûr que je n'utilise pas non plus le designer pour quelque chose de compliqué, même si je le commence au designer tout de même. En ce qui concerne le layout, c'est vrai qu'il n'apparaît pas dans l'arbre (en même temps, c'est normal, il est un peu à part) mais il facile de le supprimer ou d'en changer à l'aide des icônes, c'est déjà ça.
Complètement d'accord ;)
Autre avantage non négligeable de QT, même si je connais très peut wx, pour moi est le soin que Trolltech a apporté à sa doc.
J'en est rarement vu d'aussi fourni et pratique pour rechercher une info. SAns parler de la communauté QT qui elle aussi est très riche et très étendue
A ce niveau, l'outil de génération de documentation n'est pas libre et un projet visant à copier celui-ci a donné... doxygen.
Un autre point fort de Qt, et ça conception des widgets comme une sorte de "boite" qui va émettre des signaux correspondant as un événements important de la "boite" et des slots qui vont appliquer des traitements spécifique de la "boite". Il suffit d'utiliser les connect pour faire interagir ces différentes "boite" entre elle.
Ce qui rend trés facile de créer des widgets réutilisable et modulable, il suffit de bien définir ces signaux et ces slots.
C'est Q3Canvas dans ma doc.
Là Qt marque un point.
Non , je trouve le style de Qt assez moche , ca fait plastique mal fini.Citation:
?? Tu veux dire le style de wxWidgets est moche, c'est ça ? Parce que Qt vient avec plusieurs styles différents et encore plus sous Windows.
Pareil .Citation:
Un autre point fort de Qt, et ça conception des widgets comme une sorte de "boite" qui va émettre des signaux correspondant as un événements important de la "boite" et des slots qui vont appliquer des traitements spécifique de la "boite". Il suffit d'utiliser les connect pour faire interagir ces différentes "boite" entre elle.
Ce qui rend trés facile de créer des widgets réutilisable et modulable, il suffit de bien définir ces signaux et ces slots.
Une classe définit les events quelle traite et les autres classes n'on qua lui envoyé ces events si elles veulent communiquer.
Je vois de même pour wx.
Sa doc est tout aussi clair avec une liste des principales classes classées pas catégorie ou une liste exaustive par ordre alphabétique.
Par contre , est ce que Qt vous permer de définir vos propres events au besoin pour des classes créer de toutes pièces , jsute dérivé de classe qui chope les events?
Q3Canvas, c'est l'ancien canevas, dépassé depuis Qt4.2, bien plus puissant.
Le style Windows, c'est le style Windows classique, je ne vois pas de quoi tu parles.
Naturellement.
La doc est tout de même mieux classée que wxWidgets où c'est le zouc à mon avis.
En revanche, la pompe à messages de wxWidgets est surtout plus statique que celle de Qt.
Sous linux , ma doc Qt4 et j'ai Q3Canvas.
J'ai testé et c'est encore valable.
Je suis sous linux et le style Qt sous linux est (je trouve) très moche.
JE trouve pas , mais chacun a son idée d'orgnisation.Citation:
La doc est tout de même mieux classée que wxWidgets où c'est le zouc à mon avis.
Au contraire moi , chez Qt je m'y retrouve pas :lol: .
En statique on a les macros ou en dynamique on Connect ou push/pop (my)event.Citation:
En revanche, la pompe à messages de wxWidgets est surtout plus statique que celle de Qt.
Bah dison qu'ici(http://qt.developpez.com/doc/4.3/classes/) je ne vois pas de h de QCanvas mais ici(http://qt.developpez.com/doc/4.3/compatclasses/) j'ai un Q3Canvas alors...
Je ne sais comment changer de style de tout Qt pour des application déja compilé.
Pas moi.Citation:
Sincèrement, je préfère un seul mécanisme plutôt que plusieurs (et pas un qui utilise des macros !)
Je suis pour le pluralisme.
En statique pour des évenements qu'on est sure de gérer.
Et après en dynamique pour certain qui pourrait ne pas avoir besoin dre gérér ou autre.
Excuse-moi, c'est vrai que le nom a changé : http://qt.developpez.com/doc/4.3/graphicsview/
Pour changer le style d'une appli à la volée, utilise -style nouveau_motif
Le truc qui me dérange le plus avec l'approche de wxWidgets, ce sont les macros plus que le fait d'avoir plusieurs mécanismes. S'il y a le moindre problème, on a du mal à savoir ce qui s'est mal passé.