Journal GTK+ mon amour !

Posté par  .
Étiquettes : aucune
0
3
mai
2004
Bonjour,

Juste un petit journal tout petit pour dire mon étonnement et la surprise que j'ai eu quand j'ai découvert GTK+. J'ai découvert cette API au cours d'un projet informatique et j'ai été bleuffé par la _simplicité_ et l'_intuitivité_ de cette bibliothèque.
Lorsque j'ai fait mumuse avec NCurses, j'avais pas mal galéré mais là, en 7Heures chrono j'ai fini quasiment tous les tutoriaux de www.gtk-fr.org (modèle de pédagogie d'ailleurs ce site).

Voilà, ça fait quand même du bien des journaux positifs :)

Aller, bon code et bonne soirée :)
Lockness.
  • # ruby/gtk+

    Posté par  . Évalué à 4.

    Et si tu testes le binding Gtk+ pour ruby tu verras que c'est encore plus facile :)
  • # j'aime pas GTK+

    Posté par  (site Web personnel) . Évalué à 3.

    > j'ai été bleuffé par la _simplicité_ et l'_intuitivité_ de cette bibliothèque.
    Tu n'as pas précisé, mais je suppose que tu l'as utilisé en C ?
    Moi j'ai été plutot dégouté par la complexité (50 types de widgets * 100 fonctions par widget + la glib + pango + ... + savoir quand est-ce qu'un truc a été alloué sur le tas, quand est-ce qu'il est refcounté, etc) de cette bibliothèque, et dans une moindre mesure par la doc. Les tutoriaux sont bien, mais je n'y ai jamais trouvé ce que je cherchais à faire.

    Et puis les cast (GTK_WIDGET(plop), GTK_LIST_STORE(coin), ..) de partout c'est un peu degueu. A la limite ils auraient pu tout mettre en void* ça ferait pas beaucoup de difference, à part que la touche shift de mon clavier serait un peu moins usée.
    • [^] # Re: j'aime pas GTK+

      Posté par  . Évalué à 2.

      C'est vrai qu'en C, c'est assez lourd à utiliser à cause des noms de fonctions à rallonge et des casts. Mais ces casts de sont pas dégueu, c'est le seul moyen de faire de la programmation orientée objet en C, et c'est ce qui permet à GTK d'être quand même moderne et structuré.
      • [^] # Faire de l'objet en C++....

        Posté par  . Évalué à 2.

        Selon moi c'est là que réside la lourdeur de la programmation en Gtk : programmer en objetr avec un lagage qui ne l'est pas. C'est pour ça que j'utilise Qt. Qt est très facile pour qui connait la programmation orienté objet. L'essayer c'est l'adopter.

        Personnelement je suis partisant du choix du bon outil pour la bonne tâche. Je ne suis pas sûr que le C soit le bon choix pour dénelopper un toolkik. Après d'autres vont sortir l'interface c++ de gtk. Mais là ça fait un peu béquille....

        Jul
        • [^] # Re: Faire de l'objet en C++....

          Posté par  . Évalué à 0.

          Qt, objet? Mais je croyais que c'était écrit en C++ !?

          Snark sur #eiffel

          PS: la signature est importante, pour saisir le message -- si vous pensez que c'est un troll, c'est que vous n'avez pas saisi! ;-)
          • [^] # Re: Faire de l'objet en C++....

            Posté par  . Évalué à 1.

            Qt, objet? Mais je croyais que c'était écrit en C++ !?

            Pas du tout, c'est écrit en C+=2... ils se sont dit que le c++ c'est pas suffisament le bordel, donc ils ont rajouté un peu de piment à base de signal, slots, properties et même des macros Q_OBJECT histoire de faire un peu de concurence à Gtk...
        • [^] # Re: Faire de l'objet en C++....

          Posté par  . Évalué à 1.

          Je met suis justement mis à gtkmm pour un projet (d'école) tout simple en c++. J'utilise glademm pour l'interface :
          - le code généré par glademm n'est vraiment pas terrible : on est obligé de modifier les fichiers "en-têtés" "DO NOT EDIT THIS FILE !" pour pouvoir accéder aux widgets.
          - la doc de glademm est quasi-inexistante.
          - la doc du wrapper gtkmm n'est vraiment pas pratique.

          Je ne connais pas du tout Qt mais j'ai bien envi de l'essayer pour comparer.

          C'est bien dommage car j'utilise Gtk+ (et glade) et je suis bien de l'avis de Lockness, et l'approche objet ne me gêne vraiment pas (au contraire).
        • [^] # Re: Faire de l'objet en C++....

          Posté par  . Évalué à 1.

          Faut faire une différence entre programmer GTK et programmer en GTK. C'est assez lourd de programmer une GUI en C, quel que soit le toolkit, mais personne ne t'oblige à le faire. Programmer une GUI avec Ruby/GTK, c'est un vrai bonheur par contre :-)
    • [^] # Re: j'aime pas GTK+

      Posté par  . Évalué à 3.

      Perso je ne trouve pas du tout GTK+ complexe pour faire une GUI relativement simple.

      > Les tutoriaux sont bien, mais je n'y ai jamais trouvé ce que je cherchais à faire.
      Les tutoriaux ne servent que de bases et ne permettent pas de faire quelque chose d'élaborer. Quand j'ai commencé à programmer avec GTK+, en plus de lire les tutoriaux de gtk-fr.org, j'allais tout le temps sur gtk.org pour l'API qui me permettait de trouver toutes les fonctions qui m'étaient nécessaire. De plus, celle-ci est particulièrement complète (sauf pour le DND).

      > 100 fonctions par widget
      Justement je trouve que c'est un avantage. Les fonctions sont clairs et explicites. Elles permettent de remplir une tâche précise directement et pas en mettant dans centaines d'arguments différents pour une fonction pour obtenir ce que je veux.

      > la glib + pango
      Pour une application simple, c'est deux là ne servent à rien... En tout cas, je ne les ai jamais utilisé (sauf les GList de la glib).

      > Et puis les cast (GTK_WIDGET(plop), GTK_LIST_STORE(coin), ..) de partout c'est un peu degueu
      Je suis quand même d'accord avec toi là....

      > A la limite ils auraient pu tout mettre en void* ça ferait pas beaucoup de difference
      Je suis pas sur de ce que je vais avancer mais ces casts ne sont pas de "simples" casts comme un (char *) ou un (double). Gtk+ essaye d'implémenter une programmation orientée objet et c'est cast permette d'utiliser les notions d'héritage et de descendance. Quand on alloue un GtkWidget *button, le GTK_BUTTON( button) va permettre de remonter jusqu'à la structure GtkButton, fille de GtkWidget.

      A+
  • # GTK 2.4 vs GTK 2.0

    Posté par  . Évalué à 1.

    Salut,

    Je voulais justement me lancer dans la programmation avec gtk et j'ai donc cherché des tutoriaux. Il semblerait que la plupart portent sur GTK 2.0 et non la version 2.4. Y a t-il une grande différence entre ces deux versions?
    • [^] # Re: GTK 2.4 vs GTK 2.0

      Posté par  . Évalué à 2.

      Non, c'est parfaitement compatible, tout ce que tu peux voir pour la 2.0 fonctionnera pour la 2.4. Les seuls problèmes que tu pourrais avoir seraient entre la version 1 et la version 2.
      • [^] # Re: GTK 2.4 vs GTK 2.0

        Posté par  . Évalué à 1.

        oui, ca je m'en doutait :)
        Mais y a t'il des nouvelles fonctionnalités dans gtk 2.4 qui ne sont pas documentées dans ces tutoriaux?
      • [^] # Re: GTK 2.4 vs GTK 2.0

        Posté par  . Évalué à 1.

        Faut juste faire gaffe à certains widgets deprecated, qui disparaissent au fur et à mesure des versions. Sinon c'est parfaitement compatible. Mon app en Python / GTK+2.0 tourne très bien avec GTK+2.4 installé par exemple.

        Le seul truc lourd en GTK+2.0, c'est la gestion des List & Tree. C'était beaucoup plus simple, pratique et moins lourd (pour le CPU) à utiliser avant (CList & CTree). Mais bon, les nouveaux permettent beaucoup de choses (trop).

        À noter que certains choses pourraient être beaucoup plus pratique, facile & agréables à programmer. Comme le fileselector, qui demande je ne sais combien de callbacks juste pour récup un bête nom de fichier...
        • [^] # Re: GTK 2.4 vs GTK 2.0

          Posté par  . Évalué à 1.

          A propos de listes, est-il possible d'utiliser des widgets « listes virtuelles » avec gtk? (j'entends par là une liste pouvant fair 25 millions de lignes par exemple, dont le contenu n'est pas stocké en interne mais fournie par une fonction)

          J'ai été extrêment surpris que Qt ne proposait en standard qu'une pseudo solution mal ficelée à base d QTable, alors que wx gère ça très bien...
          • [^] # Re: GTK 2.4 vs GTK 2.0

            Posté par  (site Web personnel) . Évalué à 1.

            une liste pouvant fair 25 millions de lignes par exemple, dont le contenu n'est pas stocké en interne mais fournie par une fonction

            C'est justement l'intérêt du "nouveau" système dans Gtk2 : les listes utilisent maintenant un système MVC (liste = vue + controleur) et sont associées à un modèle (données). Du "tout dynamique" en quelque sorte.

            Un peu plus compliqué à mettre en oeuvre mais c'est un régal niveau flexibilité et "propreté" du code.
      • [^] # Re: GTK 2.4 vs GTK 2.0

        Posté par  . Évalué à 2.

        Oui enfin pour ceux qui sont passés à GTK-2.4 ont certainement remarquer que Gkrellm2 ne gère plus les polices. Il faudra donc se contenter de la police par défaut.

        Dans mon cas, ça passe mais avec d'autres skins ça pourrait être l'horreur. Vivement la sortie d'une nouvelle version de Gkrellm qui corrige ce désagrément. (En fait, y'a déjà une version de test 2.1.28 qui résout le problème mais certains de mes plugins font planter le programme)
        • [^] # Re: GTK 2.4 vs GTK 2.0

          Posté par  . Évalué à 1.

          gkrellm, l'espece de truc infâme qui prend de la place sur le bureau, bouffe 185% de la CPU pour afficher des trucs qu'on a pas besoin de voir se rafraichir toutes les 250 millisecondes ?

          ->[inutiiiiile, comme gkrellm, tiens]
  • # Différence entre Gnome et GTK 2

    Posté par  (site Web personnel) . Évalué à 2.

    Connaitriez vous les différences entre les API de Gnome et GTK 2 et aurait-elle un jour l'intention d'être regroupé??

    Forum Software Reviews: Comparez et testez les logiciels de forums Internet!

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.