Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 26/01/2006, à 12:42

ZeBob

GTK# ou Pygtk

sans partir dans le trolistique, quels sont vos impressions sur les deux? j'hésite à me lancer dans un des deux en ce moment.

Hors ligne

#2 Le 26/01/2006, à 17:20

marcounet

Re : GTK# ou Pygtk

Moi j'utilise PyGTK + Glade, ça me permet de développer sous Linux des programmes qui tournent sous Windows et inversément. De plus avec Py2Exe on n'a pas besoin d'installer plein de choses sur la machine cliente Windows, et une machine cliente Linux dispose dans la majeure partie des cas de GTK2, des librairies Glade et même souvent Python, donc aucune installation nécessaire.
Ceci dit je ne connais pas Gtk# (Mono?) mais il me semble que c'est beaucoup plus récent, faut voir s'il y a des librairies aussi conséquentes que celles de Python avec lesquelles on peut vraiment tout faire.
Le problème c'est si on veut cacher le code pour faire une appli commerciale, mais j'en fais pas alors je m'en fous, et puis sous Mono c'est aussi du byte-code, non ?


Marcounet des Brumes

Hors ligne

#3 Le 26/01/2006, à 17:34

ZeBob

Re : GTK# ou Pygtk

ça me permet de développer sous Linux des programmes qui tournent sous Windows et inversément

c'est un peu ce que je cherche aussi mais jsutement je me demandais si avec sharp ça serait pas plus interopérable.
je cherche pas à faire du commercial

Hors ligne

#4 Le 26/01/2006, à 19:19

thx1138

Re : GTK# ou Pygtk

Mon avis - qui n'engage que moi :

J'ai fait du PyGtk avant mais je n'en fais plus.
Pourquoi ?
Tout simplement parce que je ne trouve pas ça très «propre».
PyGtk n'est qu'une simple copie de l'API C Gtk+, sans ajout.
Pire, elle apporte le même problème : les callbacks et leurs manque de flexibilité.

Python est un langage orienté-objet. Il n'a pas besoin de callbacks, mais d'une autre technique.
Gtkmm repose sur la libsigc++ et propose donc un système de signaux/slots, tout comme Qt.
Java-Gnome utilise quant à lui le système de Java : les listeners. Le principe est qu'une classe implémente une interface et s'enregistre pour un évènement donné.

Les deux (Gtkmm et Java-Gnome) systèmes ont clairement une approche orientée-objet. Les callbacks pas.
Le simple fait de vouloir appeler une méthode d'une instance d'un objet en Python passe par le callback qui récupère le widget sur lequel s'est effectué le signal et les données, tout ça pour directement appeler ... la méthode de l'instance de l'objet qu'on voulait initialement appeler.
Bonjour la délégation et duplication de code.

Et puis y'a le problème des arguments passés aux callbacks : voir la FAQ.

En ce qui concerne Gtk#, je ne sais pas comment cela fonctionne exactement, car je n'en ai jamais fait. Je ne peux donc me prononcer.

Quant au principe du multi-plateforme, au risque de me faire lyncher haut et court par mes collègues, j'abandonnerais l'idée de Gtk+ et je lorgnerais du côté de Qt et/ou wxWidgets car ce sont des bibliothèques faites dans ce but dès le début, ce qui n'est pas le cas de Gtk+, même si cela fonctionne car il y a une certaine indépendance par rapport au système sous-jacent.

Mon opinion vaut ce qu'elle vaut. Je vais clairement m'attirer les foudres de certains, mais c'est mon opinion.

Sur ce, en espérant avoir pu t'aider ne serait-ce qu'un peu dans ton choix, je te dirais que le meilleur conseil est d'essayer toi-même et de te forger ta propre opinion.


They did not know it was impossible, so they did it - Mark Twain

Hors ligne

#5 Le 26/01/2006, à 22:17

aleph

Re : GTK# ou Pygtk

Un petit addendum

La biblio Qt pour Python: http://www.riverbankcomputing.co.uk/pyqt/index.php

La biblio wxWidgets pour Python: http://wxpython.org/

Un plus pour wxPython, licence lgpl pour toutes les platformes.

#6 Le 27/01/2006, à 00:53

ZeBob

Re : GTK# ou Pygtk

Merci,
QT c'est pas trop mon intention je suis sous Gnome perso, et KDE n'est pas  mas tasse de thé. Je vais me renseigner plus sur les wxWidgets.

Hors ligne

#7 Le 27/01/2006, à 10:53

Bismut

Re : GTK# ou Pygtk

Moi, je ne m'y connais pas trop en programmation, mais si je devais développer un programme un jour, j'essaierais de copier un maximum : GCfilms.

- Interopérable : Sous Linux et sous Windows
- Interenvironnement : Peut utiliser le thème GTK2 ou le thème QT ou même un thème perso. que l'on peut créer soit-même en XML.

Et puis il pête trop... big_smile
Il est écrit en GTK-perl je crois... mais c'est vrai que Ubuntu soutient le Python alors il doit bien y avoir quelques bonnes raisons à cela je pense non ?


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#8 Le 27/01/2006, à 17:11

ZeBob

Re : GTK# ou Pygtk

Ubuntu soutient le Python

qui c'est qui a dit ça ?
C'est vrai que plein de blogs en rapport avec Ubuntu que je lis c'est python python python sinon jamais vu rien de tel.

Hors ligne

#9 Le 27/01/2006, à 19:53

Bismut

Re : GTK# ou Pygtk

Ben je l'ai lu à maintes reprises ici même, avec y compris la source une fois : C'était l'équipe de développement de Ubuntu qui parlait de la ligne directrice à suivre il me semble et soutenait Python...
Maintenant, je ne suis pas expert dans le domaine, et peut-être était-ce un caprice à la Linus (cf. "Utilisez KDE"... lol ^^")

Moi, à vue de nez, ce qui me séduit le plus, c'est le Python et le Perl, mais c'est tout-à-fait subjectif, et vue de loin...


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#10 Le 28/01/2006, à 02:17

Noé

Re : GTK# ou Pygtk

RubyQt big_smile
Python c'est nul, ruby en force big_smile

(Pour 'ouais mais j'aime pas KDE' bah ça change rien KDE c'est kdelibs. Gnome c'est Gnome. Mais Qt et GTK+ ne sont pas KDE et Gnome. )


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#11 Le 28/01/2006, à 11:43

bergi

Re : GTK# ou Pygtk

si si noe kde utilse qt et gnome gtk....
Et python/gnome font tres bon menage d'ou ton "impression" q'Ubuntu defend python

Hors ligne

#12 Le 28/01/2006, à 15:51

Noé

Re : GTK# ou Pygtk

Oui, KDE utilise Qt et Gnome utilise GTK. Mais KDElibs n'est pas Qt et les libs de GNOME ne sont pas GTK.

Il y a des logiciels Qt et des logiciels KDE (Psi est en Qt, Kopete est en KDE) de même qu'il y a des logiciels GTK et des logiciels GNOME (je crois que GIMP est en GTK de même que firefox, mais que nautilus par exemple est en GNOME)

(Cependant je ne connais pas bien l'architecture de GNOME donc j'ai peut être dit une inexactitude à propos de GNOME, mais en tous cas si KDElibs utilise Qt, Qt n'est pas KDElibs.)

Par ailleurs Ubuntu défend réellement Python car Mark Schuttleworth adore Python.
Cependant Ruby et Python sont très similaires donc choisir l'un ou l'autre est principalement une affaire de goût. Personellement je préfère Ruby pour la syntaxe des itérateurs, l'expressivité et la grande liberté syntaxique, mais des fois j'aimerais bien, comme en python, ne pas avoir besoin de mettre des 'end' pour fermer les blocs...

(Notons quand même que l'interpréteur ruby est un peu plus lent que CPython [ J'ai fait des tests simples genre additionner tous les nombres de 1 à 1000000 ])


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#13 Le 28/01/2006, à 16:10

bergi

Re : GTK# ou Pygtk

essaye d'enlever les bibiotheque qt ou gtk je pense pas que gnome ou kde apprecie !
Les appli kde repose sur qt et les appli gnome sur gtk+, fait une recherche sur le developpement d'appli kde/gnome... kdelib n'est qu'un meta-package qui ne concerne pas forcement les bibiotheque graphique.

Et GIMP a inventer GTK pour la petit histoire.

Hors ligne

#14 Le 28/01/2006, à 16:33

Noé

Re : GTK# ou Pygtk

Je sais, je sais. Il n'empêche que si KDElibs Utilise Qt, Qt n'utilise pas KDElibs. KDElibs est basé sur Qt. Programmer en Qt n'est pas programmer en KDE
(Exemples : Essaye d'utiliser DCOP, KIO, KParts et tout ça sans KDElibs, tu vas avoir du mal, même si tu as Qt tongue Et KDElibs ne se limite pas à ça. )

De même pour GNOME et GTK.


Et GIMP a inventer GTK pour la petit histoire.

GIMP ToolKit, je sais. J'ai un minimum de culture, quand même, pour qui tu me prends rahlala ^^

Dernière modification par Noé (Le 28/01/2006, à 16:34)


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#15 Le 28/01/2006, à 16:43

bergi

Re : GTK# ou Pygtk

je crois que GIMP est en GTK

hmm

Hors ligne

#16 Le 28/01/2006, à 17:00

Noé

Re : GTK# ou Pygtk

Oui, je ne suis pas sur qu'il n'utilise aucune librairie de GNOME à part GTK même en option. C'est plus clair ? smile


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#17 Le 28/01/2006, à 17:15

bergi

Re : GTK# ou Pygtk

gnome ou kde n'offre pas de librairie graphique...
D'apres mes recherche et ce que j'en sais, je n'ai jamais entendu parle de libraire graphique KDE ou gnome qui permette de faire une interface graphique !

Enfin c pas grave..

Hors ligne

#18 Le 28/01/2006, à 17:44

Noé

Re : GTK# ou Pygtk

Plus d'info sur l'architecture de KDE :
http://developer.kde.org/documentation/library/kdeqt/kde3arch/
Comme tu peux le constater, KDE utilise Qt, mais une application KDE n'est pas une application Qt et inversement.

Par comparaison :
Un hello World en Qt :

#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QPushButton *hello=new QPushButton( "Hello world!", 0 );
    hello->resize( 100, 30 );
 
    QObject::connect( hello, SIGNAL(clicked()), &a, SLOT(quit()) );
 
    a.setMainWidget( hello );
    hello->show();
 
    return a.exec();
}

Et un Hello World en KDE :

#include <kapp.h>
#include <klocale.h>
#include <qpushbutton.h>
 
int main( int argc, char **argv )
{
    KApplication a( argc, argv , "p2");
 
    QPushButton *hello=new QPushButton( i18n("Hello World !"), 0 );
    hello->setAutoResize( TRUE );
 
    QObject::connect( hello, SIGNAL(clicked()), &a, SLOT(quit()) );
 
    a.setMainWidget( hello );
    hello->show();
 
    return a.exec();
}

Encore une fois tu constate que KDE utilise Qt mais qu'on peut faire du Qt sans faire du KDE.

Pour GNOME ça m'étonnerait que ce soit très différent mais je m'y connais pas en GNOME/GTK

Les exemples de code sont tirés de http://developer.kde.org/~larrosa/tutorial/index.html

Dernière modification par Noé (Le 28/01/2006, à 17:46)


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#19 Le 28/01/2006, à 19:12

bergi

Re : GTK# ou Pygtk

Encore une fois tu constate que KDE utilise Qt mais qu'on peut faire du Qt sans faire du KDE.

Je n'ai jamais dit le contraire ! Je dit que l'on ne peut pas faire du KDE sans QT ! Et du gnome sans GTK !

Hors ligne

#20 Le 28/01/2006, à 19:19

thx1138

Re : GTK# ou Pygtk

Bergi et Noé> On s'éloigne du sujet initial !

Moi j'ai évoqué d'autres toolkits (wxWidgets et Qt) mais ZeBob voulait au départ faire du Gtk+.
Le seul problème était le choix du langage à utiliser. Point.


They did not know it was impossible, so they did it - Mark Twain

Hors ligne

#21 Le 29/01/2006, à 01:51

Noé

Re : GTK# ou Pygtk

Ruby dans ce cas big_smile
Non sincèrement je lui conseille d'essayer un peu tous les langages, c'est avant tout une histoire de goûts je pense.

bergi : Oui mais je répondais à ZeBob qui disait

Merci,
QT c'est pas trop mon intention je suis sous Gnome perso, et KDE n'est pas  mas tasse de thé. Je vais me renseigner plus sur les wxWidgets

Et je lui expliquait que s'il n'aimait pas KDE, il n'avait qu'à pas programmer en KDE, mais ça ne l'empechaît pas de programmer en Qt.

Dernière modification par Noé (Le 29/01/2006, à 02:01)


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#22 Le 29/01/2006, à 11:32

Xaero

Re : GTK# ou Pygtk

Moi je suis plutôt pour PyQt que PyGTK, même si j'utilise gnome au quotidien, pyGTK c'est bof bof, et le système des callback avec python l'est aussi (bof), comme thx1138 le dis plus haut.

WxWidgets pour Python j'ai pas testé, j'ai juste fait plusieurs test avec C++, et le fait de me retrouver avec des exe de 5Mo pour un Hello World ça m'avais calmé, mais bon y'a sûrement un param à passer en plus au compilo.

Ah et pour Qt, l'utilitaire qmake est vraiment sympa.

Pour ce qui est de la question plus haut, j'ai pas encore installé Mono mais la dernière fois que j'avais jeté un oeil je crois qu'il ne supportait pas ou alors pas complètement les winform, mais bon .Net va pas disparaître comme ça, sous Win ça va vite devenir très répandu, si ça ne l'est pas déjà.

Hors ligne

#23 Le 29/01/2006, à 14:26

ZeBob

Re : GTK# ou Pygtk

Pas trollé. Nan je veux essayer de developper pour Ubuntu principalement (donc Gnome) mais je me suis posé la question de Windows éventuellement. Donc il n'est effectivement pas question de QT ou GTK. Je connais mal les WxWidgets pour ça que je veux me renseigner avant. Mais pour l'instant c'est GTK.
La question c'était C# ou Python ? donc j'aurais aimé des arguments plus en rapport avec la simplicité, la rapidité, ou autres...même si c'est subjectif.

sous Win ça va vite devenir très répandu,

C'est déjà pas mal répandu sous gnome.

Dernière modification par ZeBob (Le 29/01/2006, à 14:28)

Hors ligne

#24 Le 04/02/2006, à 15:37

lordphoenix

Re : GTK# ou Pygtk

C# sous linux c'est mono (portage open  source du framework .net) pour la partie graphique il existe GTK# qui est intégré au framework sous la forme de tout un ensemble de classe pour manipuler les composants GTK.
L'avantage de cette architecture c'est que le framework Mono étant disponible sur plusieurs plates forme ton appli devient relativement portable.A ceci près qu'il faut faire attention à ne pas utiliser des classes spécifiques à chaque plate forme si tu utilises des objet permettant d'acceder aux données de GConf si un jour tu portes l'appli sous windows ça coincera.
De plus le langage C# est assez sympa il offre toutes les possibiltées du C++ tout en se débarrassant des chausses trappes qui peuvent le faire paraitre très compliqué pour un débutant.

En plus les winforms sont en cours de portage dans mono (ça facilitera le portage windows<-> linux) et le framework est en évolution extremment rapide et laisse supposer des capacitées intéressante.

Si tu as besoin d'aide sur mono tu as le forum monofrance (voir dans ma signature)

Dernière modification par lordphoenix (Le 04/02/2006, à 15:42)

Hors ligne

#25 Le 05/02/2006, à 14:40

ZeBob

Re : GTK# ou Pygtk

Merci lordphoenix

Hors ligne

Haut de page ↑