我可以使用qtcreator在C上制作GUI吗?

时间:2015-11-14 07:57:54

标签: c qt-creator

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

4 个答案:

答案 0 :(得分:2)

你显然很困惑。

它不是QT 1 ,它是Qt" 小写t &#34 ;和qtcreator不是 Qt

你可以在没有 qtcreator qmake 3 的情况下编写 Qt 应用程序,实际上我有一个很大的 Qt < / em>使用cmake作为构建系统的应用程序,并且您知道KDE使用 cmake automoc,它原来是 KDE的一部分的源代码)。

此外,您可以在中使用库,事实上您可以在任何地方使用C库 - 与C ++不同,您可以使用它。

在C ++代码中使用C函数的一个复杂因素是C ++更改函数名称以允许函数/方法重载(尽管方法与C无关)。但即使如此,您甚至可以通过编写&#34; C&#34; 2 函数来创建和销毁类的实例,从而为C ++ classess创建一个插件接口。 / p>

为了避免名称错误问题,有extern "C",所以说你在头文件中有一个C函数&#34; function.h &#34;

void c_function(void);

并且您希望在C ++代码中使用它,您可以这样做

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

现在您可以从C ++代码中调用c_function()

<强>结论

  • 您可以编写 Qt 图形用户界面并在其中使用您的C代码,除了extern "C"之外不需要任何特殊内容。
  • 您可以使用qtcreator编写C(可能是 gtk )图形用户界面,它实际上非常好用于如何协同工作。在这种情况下,我会建议 cmake 作为构建系统,尽管原则上 qmake 也可以完成这项工作。
  • 您可以使用PyGTKPyQt甚至Python's TkInter来编写图形用户界面,因为您可以从 C创建模块代码。

1 QT实际上代表QuickTime。

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

3 之前没有 qtcreator ,但 Qt 在那里,而KDE 3确实使用了 Qt 没有 cmake ,只有autotools。

答案 1 :(得分:0)

不,要创建一个gui项目,你必须使用c ++代码

答案 2 :(得分:0)

Qt不是c,但你可以。

选项1 这并不意味着您将不得不更改您的c源文件。只需编写一个dll接口,它将为c层提供API。

选项2 而且由于C是与c ++有关的一些东西,我想在代码中添加面向对象的本质会很容易,因此不会改变代码的逻辑而使其保持不变

答案 3 :(得分:-2)

这是来自Qt网站的hello world教程,它是用C ++编写的,@ iharob将它翻译成“C”是一个挑战。任何其他欢迎使它更有启发性。

/****************************************************************
**
** Qt tutorial 1
**
****************************************************************/

#include <qapplication.h>
#include <qpushbutton.h>


int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QPushButton hello( "Hello world!", 0 );
    hello.resize( 100, 30 );

    a.setMainWidget( &hello );
    hello.show();
    return a.exec();
}