1

Bonjour,

Je suis sous Linux et doit développer une interface graphique en C/C++.

De ces 2 environnements graphiques : GTK+, Qt lequel est le mieux documenté et le plus simple à développer ?

Et wxWidgets qui s'adapte à l'environnement de l'OS peut t-il être un choix judicieux ?

Merci d'avance de votre réponse. smile

didier
Didier

2

QT est sympa et plutôt bien documenté mais je n'apprécie pas vraiment le fait d'apporter carrément des changement dans langage (à coups de macro et de générateurs automatique de code même si qmake rend ça plus ou moins transparent), pour introduire les concepts de signal/slots. Je trouve également dommage d'utiliser des classe spécifiques pour les Collection, String, ... alors qu'il en existe déjà des standard.

Je connais moins bien GTK, mais je n'ai jamais entendu dire qu'il manquait de support/doc.
avatar

3

Il faut penser à l'utilisateur de l'application. Il est sur quel OS, cet OS est-il susceptible de changer?

4

Le seul probleme avec Qt c'est la taille que ca prend... si tu veux faire un turc un peu leger, c mort :/

5

JackosKing (./3) :
Il faut penser à l'utilisateur de l'application. Il est sur quel OS, cet OS est-il susceptible de changer?

Pour une appli devant tourner sous Linux avec Gnome ou KDE, et par la suite peut-être sous Windows et Mac. C'est pourquoi je pensais à wxWidgets qui utilise , d'après ce que j'ai lu, les bibliothèques natives des plates-formes cible. On fait ainsi l'économie du portage vers d'autres OS, une simple compilation sous l'OS cible suffit ....
Didier

6

nEUrOO (./4) :
Le seul probleme avec Qt c'est la taille que ca prend... si tu veux faire un turc un peu leger, c mort :/
Si c'est du Linux only, je ne pense pas que ce soit une problème, QT est généralement déjà installé. Pour du windows les DLL sont certes un peu grosses pour un micro projet, maintenant reste à voir si c'est critique.
avatar

7

QT est multi-plateforme, mais il est monstrueux. Je le déconseille sauf si tu as besoin de ce que propose en plus Qt (ie pas bcp de chose en plus de la STL.).

Un exemple d'application QT: Skype
wxWidgets: VLC
gtk: Gimp

8

9

didier (./5) :
JackosKing (./3) :
Il faut penser à l'utilisateur de l'application. Il est sur quel OS, cet OS est-il susceptible de changer?

Pour une appli devant tourner sous Linux avec Gnome ou KDE, et par la suite peut-être sous Windows et Mac. C'est pourquoi je pensais à wxWidgets qui utilise , d'après ce que j'ai lu, les bibliothèques natives des plates-formes cible. On fait ainsi l'économie du portage vers d'autres OS, une simple compilation sous l'OS cible suffit ....

Si tu veux un portage vers d'autre plateformes, alors je te déconseille GTK, qui va devenir une plaie, dès que tu n'est plus en environnement Linux. QT et wxWidget sont clairement les soultion à envisager.

Je ne connait pas vraiment wxWidget, mais à ce que j'ai compris il rend seulement l'interface graphique portable.

QT fait de même mais il ne se contente pas d'une API de widgets graphiques, mais fournit plein d'outils (Threads,GUI,XML,SVG,Browser,Réseau, ...) qui fonctionnent sans problèmes quelque soit la plateforme, le plus souvent avec une simple recompilation. Au final, ça m'a vraiment donné l'impression de travailler avec l'API JAVA. Bref je pense que si tu veux faire quelquechose de portable avec un minimum d'effort QT est la meilleure solution.
Par contre un problème de licenece va se poser avec QT, car soit tu paye la licence(qui n'est pas donnée) soit ton programme devra être en GPL(à voir si ça te pose problème ou non).
avatar

10

La GPL pour Qt s'impose même sous Linux ? (i.e. est-ce qu'on peut dire que ça fait partie de l'OS ou pas ?)
JackosKing (./7) :
(ie pas bcp de chose en plus de la STL.).

confus
Au contraire, y a un nombre impressionnant de libs multiplateformes qui vont bien au-delà de la STL...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

11

exemple de truc utile? :P

12

en jetant un coup d'oeil à la doc : threading/sockets/HTTP/SQL/SSL/XML/regexp/unicode/formats d'image/surveillance du système de fichiers...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

13

pencil Il y a en malheureusement certaines fonction en doublon avec la STL, notamment les String et les Collections. Mais il y a quand même pas mal de fonction avancées bien pratique.
avatar

14

Merci pour vos réponses. smile
Didier

15

JackosKing (./7) :
wxWidgets: VLC
La nouvelle version de VLC (0.9) utilise une interface utilisateur écrite avec Qt.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

16

Uther (./9) :
....
Je ne connait pas vraiment wxWidget, mais à ce que j'ai compris il rend seulement l'interface graphique portable.
....

Je viens de consulté rapidement la doc de wxWidget : http://www.wxdev.fr/doc/wx_contents.htmlhttp://www.wxdev.fr/doc/wx_contents.html
et ça semble être assez complet : il y a tout pour la gestion réseau, des threads, timer, etc.... et aller au-delà de l'interface graphique.
Et cette bibliothèque est sous licence LGPL, proche de GPL
Didier

17

Pollux (./10) :
La GPL pour Qt s'impose même sous Linux ?

Oui.
(i.e. est-ce qu'on peut dire que ça fait partie de l'OS ou pas ?)

Cette exception ne marche pas dans ce sens. Ça permet d'utiliser les logiciels sous GPL avec des libs propriétaires si elles font partie de l'OS, pas l'inverse.

Cf. http://trolltech.com/company/about/businessmodel.

Quant à wxWidgets, son problème principal, c'est que wxGTK (le backend utilisé sous GNU/Linux) est bogué et lent. wxWidgets est aussi moins pratique à utiliser (pour le développeur) que Qt. En revanche, si tu veux coder une application propriétaire (non-libre) sans payer une licence commerciale de Qt (sick va ch**r, parasite! grin), alors wxWidgets est ton seul choix (ou à la limite GTK+, mais le support pour autre chose que *nix/X11 est plutôt limité).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

18

didier (./16) :
Et cette bibliothèque est sous licence LGPL, proche de GPL
On ne peux pas dire que la LGPL soit proche de la GPL, c'est plutôt une version adaptée particulièrement au le cas des bibliothèques.

Il y a très une grosse différence: une bibliothèque LGPL comme xwWidget peut être utilisée avec n'importe quelle application, qu'elle soit libre ou non, alors que justement la version de QT sous GPL, ne peut être utilisé qu'avec des programmes GPL.

avatar

19

Kevin Kofler (./17) :
(i.e. est-ce qu'on peut dire que ça fait partie de l'OS ou pas ?)

Cette exception ne marche pas dans ce sens. Ça permet d'utiliser les logiciels sous GPL avec des libs propriétaires si elles font partie de l'OS, pas l'inverse.

Pourtant le noyau Linux est sous GPL et on peut exécuter des programmes propriétaires, donc ça marche dans les deux sens : l'important est que l'interface soit bien définie... Et c'est probable qu'elle ne le soit pas dans le cas de Qt.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

20

Uther (./18) :
On ne peux pas dire que la LGPL soit proche de la GPL, c'est plutôt une version adaptée particulièrement au le cas des bibliothèques.

Apdaptée au cas de certaines bibliothèques, inadaptée pour d'autres.
Il y a très une grosse différence: une bibliothèque LGPL comme xwWidget peut être utilisée avec n'importe quelle application, qu'elle soit libre ou non, alors que justement la version de QT sous GPL, ne peut être utilisé qu'avec des programmes GPL.

Ou des licences libres compatibles (genre la licence MIT X11), ou certaines autres licences libres spécifiées dans l'exception de licence de Qt.
Pollux (./19) :
Pourtant le noyau Linux est sous GPL et on peut exécuter des programmes propriétaires, donc ça marche dans les deux sens : l'important est que l'interface soit bien définie... Et c'est probable qu'elle ne le soit pas dans le cas de Qt.

Les programmes ne sont pas linkés au noyau dans le sens classique, et le noyau Linux comporte un fichier texte qui clarifie clairement que la GPL n'est pas appliquable aux programmes qui ne font que tourner dessus. Mais si la glibc était sous GPL plutôt que LGPL, ce serait autre chose!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

21

Sauf que j'imagine que ce readme n'a aucune valeur légale en soi, i.e. ce n'est pas une exception mais juste une clarification de l'interprétation voulue de la GPL. Pourquoi est-ce que cette interprétation serait correcte pour le noyau et pas pour une surcouche de Qt qui serait conçue pour avoir une interface aussi propre que celle du noyau ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

22

Ce readme est généralement considéré comme ayant une valeur légale, parce qu'il clarifie l'intention de Linus Torvalds, ainsi que des contributeurs qui contribuent au noyau en ayant connaissance de ce fichier.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

23

IANAL mais ça m'étonnerait qu'un readme ait une quelconque valeur juridique.

parce que vu le nombre de jurisprudences qui doivent toucher ce sujet, ça m'étonnerait qu'on puisse dire "généralement le readme blabla" aussi facilement.

24

squalyl (./23) :
IANAL mais ça m'étonnerait qu'un readme ait une quelconque valeur juridique.

Regarde le nombre de logiciels qui mettent l'entête "... may be distributed under the GNU General Public License as released by the Free Software Foundation, either version 2 of the license, or (at your option) any later version." uniquement dans leur readme.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

25

eh bien c'est pas bien.

et tu devrais dormir à cette heure ci grin

26

Kevin Kofler (./22) :
Ce readme est généralement considéré comme ayant une valeur légale, parce qu'il clarifie l'intention de Linus Torvalds, ainsi que des contributeurs qui contribuent au noyau en ayant connaissance de ce fichier.

Oui pour Linus Torvalds, mais pour les autres contributeurs c'est plus délicat, surtout si des bouts de code GPL externes ont été intégrés au noyau : les auteurs des bouts en question ne pouvaient pas avoir connaissance du readme. Le but d'une licence comme la GPL est justement de niveler les intentions : à moins qu'il y ait une exception (dans ce cas-là c'est plus la GPL, c'est une licence différente qui peut être convertie en GPL, et donc qui ne peut plus utiliser de morceaux de logiciels GPL pure), toutes les licences sont les mêmes.
Kevin Kofler (./24) :
Regarde le nombre de logiciels qui mettent l'entête "... may be distributed under the GNU General Public License as released by the Free Software Foundation, either version 2 of the license, or (at your option) any later version." uniquement dans leur readme.

Y compris des gros projets collaboratifs ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)