web-dev-qa-db-fra.com

Bibliothèque Cross Platform C pour les applications GUI?

Gratuit, simple à apprendre/à utiliser, bibliothèque Cross Platform C pour les applications GUI? Suis-je à la recherche de Qt?

Question bonus: Puis-je développer avec ladite bibliothèque/boîte à outils sur Mac puis recompiler sur PC/Linux?

Super Bonus Question: Lien vers le tutoriel et/ou le téléchargement de ladite bibliothèque.

La vérité est que je suis en train de rattraper la famille C (issue du développement web - XHTML/PHP/MySQL) pour apprendre le développement iPhone.

Je comprends que C n'est pas C++ ou ObjectiveC mais je veux garder la courbe d'apprentissage aussi simple que possible. Pour ne pas trop m'éloigner du sujet, mais je suis également à la recherche de bons livres de démarrage et de sites Web. J'ai trouvé jusqu'à présent .

J'essaye de tuer beaucoup d'oiseaux avec une pierre ici. Je ne comprends pas qu'il existe des extensions spécifiques à la plate-forme, mais j'essaierai d'éviter celles-ci à des fins de portage L'idée est que je veux écrire le code sur une seule machine et compiler trois fois. (Mac/Win/Linux) Si Objective C se compile sur Windows et Linux ainsi que sur OS X, c'est bien. Si je dois utiliser C++, c'est bien aussi.

39
Moshe

Si vous recherchez une bibliothèque C++ , alors Qt fait essentiellement ce que vous recherchez. Si vous voulez vous en tenir à pur [~ # ~] c [~ # ~] , alors Qt n'est pas une option.

En tant que framework C, vous pouvez utiliser GTK + , il fonctionne sous Linux, Windows et OS X.

16
sth

Jetez un oeil à IUP Toolkit . Il est écrit en grande partie en C, et est également facilement lié à Lua .

9
RBerteig

Celui que j'ai envisagé d'utiliser était le EFL , car il est assez rapide, simple, petit, mais puissant. Je recommanderais de plonger dans Elementary, leur boîte à outils GUI la plus simple, puis plus tard, une fois que vous serez à l'aise avec cela, passez à EDJE, qui n'est pas aussi simple, mais beaucoup plus puissant.

3
MiJyn

Qt est une bibliothèque C++. D'autres bibliothèques multi-plateformes que vous pourriez envisager sont wxWidgets (C++) et GTK (C).

Les trois bibliothèques présentées sont entièrement multiplates-formes. Vous pouvez également consulter Tcl/Tk, mais c'est une boîte à outils :).

3
Kornel Kisielewicz

Une autre option est Tk, qui est une bibliothèque GUI écrite en C. Elle est livrée avec Tcl, un langage de script également écrit en C. Ils ont été conçus dès le départ pour être intégrés dans des programmes C.

3
Bryan Oakley

Pour terminer ce post, Allegro doit être ici =)

http://www.talula.demon.co.uk/allegro/ Allegro Game Library, possède de nombreuses fonctions graphiques et une bibliothèque GUI de base

Et une interface graphique explicite (et très simple) basée sur Allegro

http://cgui.sourceforge.net/index.html

Multiplateforme

3
Hernán Eche

Jetez un œil au Ecere SDK . Il offre une boîte à outils GUI multiplateforme et vous offre eC, un langage orienté objet dérivé du C (avec toutes ses fonctionnalités) qui est tout simplement génial pour la création d'interfaces graphiques.

2
Jerome

Vous avez tagué cette question sur qt , qui est une balise que je suis. Cependant, vous demandez également en ce qui concerne la programmation c .

Si pour une raison étrange (ou imposée par le domaine) vous pensez que vous devez utiliser C et non C++, alors Qt n'est pas pour vous. Il a été conçu dès le départ comme une bibliothèque C++.

Pourtant, je vous suggère fortement de vous demander pourquoi votre projet serait besoin d'être en C. Il y a de nombreux avantages à C++, et l'idée que C fonctionne intrinsèquement mieux est principalement un mythe. Pour des données précises à ce sujet, consultez Bjarne Stroustrup's Learning C++ as a New Language .

Si vous doit s'en tenir à C, puis il y a toujours GTK. L'API sous-jacente de GTK + est C, mais des liaisons existent également pour C++ appelé GTKmm . Je ne suis pas un grand fan de celui-ci du point de vue de la conception, mais j'ai toujours alimenté le bureau Gnome (par défaut d'Ubuntu) ... et Google l'a choisi pour sa version de Chrome pour Linux. Donc, il a un peu de crédibilité et de soutien là-bas.

Mais notez qu'Ubuntu choisit Qt5 pour implémenter sa prochaine version de "Unity" sur le bureau:

https://askubuntu.com/questions/281092/why-is-canonical-choosing-qt-over-gtk-for-unitys-next-generation


EDIT: Vous avez ajouté:

Si je dois utiliser C++, c'est bien aussi.

"Must" est un mot fort, mais il n'y a pratiquement aucune comparaison entre C++/Qt et C/GTK. Et ce dernier devient une chose de l'histoire.

Encore une autre option, bien que limitée et peut-être laide pour certaines personnes: AGUI

Manuel: http://intron-trans.hu/agui.html

Binaires Windows: http://intron-trans.hu/agui-bin-mingw-v090b.Zip

Code source: http://intron-trans.hu/agui-src-v090b.Zip

0
LRMAAX