我的第一学期有一个大学项目。我已经编写了一个C源文件,但我想为我的项目创建一个GUI。可以用QT创建者完成吗?
答案 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函数的一个复杂因素是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()
。
<强>结论强>
extern "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();
}