J'ai trouvé des réponses contradictoires sur le Web - certains disent que oui, d'autres non. Je n'ai pas pu trouver de détails dans la documentation officielle de Qt. Alors, Qt a-t-il des liaisons C ou pas?
Réponse courte: non.
Si vous avez besoin d’une boîte à outils graphique complète pour C, vous pouvez utiliser GTK +.
Pour utiliser Qt, vous devez disposer d'un compilateur C++. Mais cela ne signifie pas que votre "logique d'application" ne peut pas être écrite en C, compilée avec un compilateur C et reliée avec soin à la partie C++ (l'interface graphique avec Qt). Cette logique d'application peut être générique, pouvant être liée à d'autres exécutables (C-pur, C/C++ mixte, etc.) Tout dépend de ce dont vous avez besoin.
Qt est excellent pour le C++, cependant, et c'est une bonne raison de décider d'utiliser le C++ pour un projet particulier, même si vous souhaitez toujours conserver des parties en C.
Malheureusement non, mais vous pouvez définir votre programme comme un ensemble de bibliothèques réalisant votre logique métier et les écrire en C, puis utiliser un peu de C++ pour relier ce que vous avez écrit en tant que bibliothèque avec une interface graphique utilisant QT.
C'est une bonne approche également, car vous pourrez plus tard réutiliser votre bibliothèque et implémenter de nombreux autres frontaux avec des kits d'outils ou des langues différentes!
Non, Qt est C++. Mais vous pouvez simplement écrire du code de style C partout où il n'y a pas d'interaction/création d'éléments d'interface graphique et compiler le tout avec le compilateur C++ de votre choix.
Il existait auparavant une liaison appelée QtC, mais sa recherche révèle ce fil :
De Richard Dale:
J'avais l'habitude de maintenir les liaisons C qui étaient utilisées par les liaisons Objective-C et Qt #. Mais la bibliothèque Smoke est bien meilleure bien que ce ne soit pas une liaison C, et je mis au rebut les liaisons QtC pour utiliser de la fumée à la place.
La fumée est ici . Je n'ai pas trouvé de référence claire aux liaisons QtC, même si je me souviens de l'avoir entendue.
Je ne pense pas que ce soit le cas. Qt est toujours décrit comme une "bibliothèque de classes" et nécessite la compilation de compilateurs C++. Vous pouvez essayer d'écrire/trouver une DLL/interface qui encapsulera QT et fournira une API à une couche C.
Vous pouvez toujours utiliser un compilateur C++ qui traduit simplement C++ en C, puis appelez les noms mutilés qu’il génère, etc. :-)
Qt utilise le compilateur de méta-objets (MOC) pour faire fonctionner le signal et la magie de la fente (par exemple, faire des rappels de fonction en fonction du signal de l'utilisateur et des définitions de fente). Donc, Qt n’est pas vraiment C++, mais sa propre syntaxe, qui ressemble beaucoup à C++, mais avec des signaux et des slots. Cela rend le "c" externe inutile.