Qt有C接口吗?

Ree*_*Ree 59 c qt

我在网上发现了相互矛盾的答案 - 有人说它确实存在,有些人说没有.我也无法在官方Qt文档中找到任何细节.Qt也有C绑定吗?

Eli*_*sky 62

简答:不.

如果您需要一个全面的GUI工具包,您可以使用GTK +.

要使用Qt,您必须拥有C++编译器.但这并不意味着你的"应用程序逻辑"不能用C语言编写,用C编译器编译并仔细链接到C++部分(带有Qt的GUI).这个应用程序逻辑可以是通用的,可链接到其他可执行文件(纯C,混合C/C++等).这完全取决于你需要什么.

但是,对于C++来说,Qt非常棒,而且即使你仍然希望在C语言中保留部分内容,这也是决定在特定项目中使用C++的一个很好的理由.


Dac*_*cav 22

不幸的是没有,但你可以塑造你的程序作为集achiving你的业务逻辑库,并把它们写在C,那么你可以使用一个小的C++绑定你​​的图书馆写了使用Qt的GUI.

这是一个好方法,也因为以后你可以重用你的图书馆,并与不同的工具包或语言实现许多其他前端!


Cor*_*sky 18

不,Qt是C++.但是你可以在任何地方编写C风格的代码,它们不会交互/创建GUI元素,并使用您选择的C++编译器编译整个事物.


Sea*_*lan 14

曾经有一个名为QtC的Binding,但搜索它会显示这个帖子:

来自Richard Dale:

我曾经维护过Objective-C和Qt#绑定使用的C绑定.但是Smoke库要好得多,虽然它不是C绑定,但我废弃了QtC绑定而不是使用smoke.

烟在这里.我无法在任何地方找到QtC Bindings的明确参考,但我记得听说过它们.


Tra*_*Guy 5

我认为不会。Qt 总是被描述为“类库”,它需要 C++ 编译器来构建。您可以尝试编写/找到一个 DLL/接口,它将环绕 QT 并为 C 层提供 API。