我可以使用 qt creator 在 C 中制作 GUI 吗?

标签 c qt-creator

我的第一个学期有一个大学项目。我已经编写了一个 C 源文件,但我想为我的项目创建一个 GUI。可以用QT creator做吗?

最佳答案

你显然很困惑。

这不是 QT 1,是Qt小写 t”和 qtcreator不是Qt

您可以在没有 qtcreatorqmake 的情况下编写 Qt 应用程序3,事实上我有一个大型的 Qt 应用程序,它使用 cmake作为构建系统,你知道 KDE也使用 cmake(带有 automoc ,它最初是 KDE 源代码的一部分)。

此外,您可以使用 中的图书馆,事实上,您几乎可以在任何地方使用 C 库 - 与 C++ 不同,您不能使用 C++。

在 C++ 代码中使用 C 函数的一个复杂问题是 C++ 更改函数的名称以允许函数/方法重载(尽管方法与 C 无关)。但是尽管如此,您甚至可以通过编写可创建和销毁类实例的 "C"2 函数为 C++ 类创建插件接口(interface)。

为了避免名称重整 问题,有extern "C" ,假设您在头文件“function.h

中有一个 C 函数
void c_function(void);

如果您想在 C++ 代码中使用它,您可以这样做

extern "C" {
#    include "function.h"
}

现在您可以调用 c_function()来自 C++ 代码。

结论

  • 您可以编写一个Qt 图形用户界面并在其中使用您的C 代码,除了extern "C" 之外根本不需要任何特殊的东西。 .
  • 您可以使用 qtcreator 编写一个 C(可能是 gtk)图形用户界面,实际上它们的协同工作非常好。在这种情况下,我会推荐 cmake 作为构建系统,尽管原则上 qmake 也应该完成这项工作。
  • 您可以使用 PyGTK , PyQt甚至 Python's TkInter编写图形用户界面,因为你可以创建一个来自 C 代码的模块。

1QT 实际上代表 QuickTime。

2不是真正的 C 函数,因为您需要能够使用 new运算符来创建类的实例,所以它实际上是一个用 extern "C" 声明的 C++ 函数以避免名称混淆。

3之前没有qtcreator,但是有Qt,KDE 3 确实使用了Qt 没有 cmake,只有 autotools。

关于我可以使用 qt creator 在 C 中制作 GUI 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33706357/

相关文章:

linux - QTcreator交叉编译

qt - 在 Qt Creator 中将 TagLib 库添加到 Linux Qt 项目?

c - 分配后它不会是相同的内存地址吗?

c - malloc ** 和 * 之间有区别吗

c - K&R 练习 1-20 编程语言第 2 版

c - C中取消引用和括号引用的操作顺序

c++ - Linux API 列出正在运行的进程?

c - 未找到 Qt 创建者标准头文件

c++ - Qt Creator - UI 类的自定义命名空间

qt - Qt Creator 的项目文件中是否有特殊的外部文件类别?