web-dev-qa-db-fra.com

Quelle est la différence entre GTK et QT?

S'il vous plaît, supportez-moi car je suis un nouvel arrivant sur Linux. J'écris des programmes graphiques dans REALbasic sur un Mac depuis plusieurs années. J'essaie d'apprendre Python et je veux écrire des applications graphiques 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 comprends qu'ils sont basés sur GTK 2 et que cela est maintenant obsolète. Est-ce exact?
  3. Existe-t-il des éditeurs tout-en-un qui me permettent de concevoir une interface graphique, puis d’ajouter du code Python? (par exemple, ajoutez un bouton à une fenêtre dans l'éditeur, double-cliquez sur le bouton puis ajoutez le code Python à exécuter lorsque vous appuyez sur le bouton)

Désolé si ce sont des questions vraiment stupides, mais je veux commencer à apprendre les "bons" outils dès le début.

29
Nootrino

Je vais essayer de répondre à vos questions sans vous engager dans des directions loufoques.

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

  2. Vous avez raison en ce qui concerne GTK2, même s’il existe de nombreuses applications GTK2. Je pense que GTK2 sera utilisé pendant un certain temps, tout comme GTK1. Lorsque Push est sur le point de disparaître, GTK2 est obsolète et si vous démarrez de nouveau, passez à GTK3.

  3. Remeber GTK et QT ne sont que des boîtes à outils de widgets. Par exemple, les applications Gnome utilisent GTK ainsi que Gnome-Libs. Si vous le souhaitez, jetez un œil à vala. C’est considéré comme simple, vala compile source à source directement en C et dispose de liaisons complètes pour de nombreux langages de programmation. Vous voudrez peut-être aussi regarder Anjuta, assurez-vous d’avoir les nouvelles versions de gtk3. Apparemment, PyGTK ne supporte que GTK2, dernière vérification que j'ai effectuée. Si vous cherchez à éviter toutes les librairies Linux DE, je vous conseillerais de regarder QT. Plain QT est différent des applications KDE, qui incluent les bibliothèques KDE. QT est considéré comme très multi-plateforme, ce qui est cool si vous voulez compiler pour non * nix. Si vous souhaitez vous familiariser avec QT + Python, consultez PySide (LGPL) ou PyQT (GPL). QT a de bons constructeurs d'interface graphique tels que Qt Creator et Qt-Designer.

12
J. M. Becker

GTK et Qt sont des boîtes à outils d'interface utilisateur et des cadres de développement multi-plateformes à source ouverte. Ce sont les deux frameworks les plus utilisés sous Linux car ils sont open-source et offrent aux développeurs un puissant outil pour la conception d'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, optez pour GTK +

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

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

5
One Zero