Quelle est la différence entre GTK et QT?

28

S'il vous plaît supportez-moi comme je suis un nouveau venu à Linux. J'écris des programmes d'interface graphique dans REALbasic sur un Mac depuis plusieurs années. J'essaie d'apprendre Python et je veux écrire des applications GUI pour Linux (principalement Ubuntu et Mint car ce sont les distributions auxquelles j'ai accès et qui semblent être les plus populaires). J'ai essentiellement trois questions:

  1. Existe-t-il des différences significatives entre GTK et QT
  2. J'ai joué avec quickly et Glade sur Ubuntu mais je crois comprendre qu'ils sont basés sur GTK 2 et que ceux-ci sont désormais obsolètes. Est-ce correct?
  3. Existe-t-il des éditeurs tout-en-un qui me permettent de concevoir une interface graphique, puis d’y ajouter du code Python? (par exemple, ajouter un bouton à une fenêtre dans l'éditeur, double-cliquer sur le bouton puis ajouter le code Python à exécuter lorsque le bouton est pressé)

Désolé si ce sont des questions vraiment idiotes mais je veux commencer à apprendre les bons outils dès le départ.

    
posée Nootrino 04.12.2011 - 20:01
la source

3 réponses

11

Je vais essayer de répondre à vos questions, sans aller dans des directions folles.

  1. Ils sont très différents, même s’ils sont tous les deux des widgets. Regular GTK + est basé sur C, et QT sur C ++. Bien que les liaisons existent pour presque tous les langages de programmation.

  2. Vous avez tout à fait raison sur GTK2, bien qu'il y ait tellement d'applications GTK2. Je m'attends à ce que GTK2 soit utilisé pendant un certain temps, tout comme l'a été GTK1. En cas de problème, GTK2 est obsolète et si vous démarrez le jeu GTK3.

  3. Remeber GTK et QT ne sont que des outils de widget. Par exemple ... Applications Gnome, utilisez GTK et aussi les Gnome-Libs. Si vous le voulez, jetez un oeil à vala. Il est considéré comme simple, le vala compile directement le source vers le source vers C et dispose de liaisons complètes pour de nombreux langages de programmation. Vous pourriez aussi vouloir regarder Anjuta, assurez-vous juste d'avoir les nouvelles versions de gtk3. Apparemment, le détroit PyGTK ne supporte que GTK2, dernière vérification en cours. Si vous cherchez à éviter toutes les librairies Linux DE, je vous suggère d’examiner QT. Plain QT est différent des applications KDE, qui incluent les bibliothèques KDE. QT est considéré comme très multiplate-forme, ce qui est cool si vous voulez compiler pour non * nix. Si vous voulez commencer avec QT + Python, regardez PySide (LGPL) ou PyQT (GPL). QT a quelques bons générateurs d’interfaces graphiques comme qt creator et qt-designer.

réponse donnée TechZilla 04.12.2011 - 22:34
la source
5

GTK et Qt sont des boîtes à outils et des cadres de développement d'interface utilisateur multi-plateformes open-source. Ce sont les deux frameworks les plus populaires utilisés pour Linux car ils sont open-source et offrent aux développeurs une puissante boîte à outils pour concevoir des interfaces utilisateur graphiques. GTK est utilisé comme boîte à outils standard pour les environnements de bureau GNOME, LXDE et Xfce, tandis que Qt est utilisé pour KDE.

Si vous codez en C, alors évidemment, optez pour GTK +

Si vous codez en C ++, optez pour Qt, sinon vous obtiendrez Gtkmm (un wrapper C ++ sur GTK +)

Si vous codez en Python, GTK + et Qt ont tous deux des liaisons pour la langue: voir PyGtk, PyQt et PySide (celui lancé par Nokia eux-mêmes).

    
réponse donnée One Zero 04.12.2011 - 22:06
la source
-2

Qt est principalement utilisé dans KDE et GTK + dans GNOME. Donc, si vous voulez développer pour GNOME, considérez GTK + puisque les dépendances nécessaires pour les bibliothèques GTK + devraient déjà être installées sur un système GNOME; l'utilisateur final n'aura pas besoin de les installer. Le développement de GTK + bénéficie également d’un outil appelé Glade Interface Designer ; Si vous le souhaitez, vous pouvez l'utiliser pour créer vos interfaces utilisateur.

    
réponse donnée kosaidpo 04.12.2011 - 21:27
la source

Lire d'autres questions sur les étiquettes