当前位置:编程学习 > 网站相关 >>

qt 入门 Hello world

刚开始学qt,该觉挺不错的,装了个开发环境,看了下demo太炫了,而且他是跨平台的,只需要在不同平台下编译一下就OK了,先记录一下helloWorld,哈哈。
环境如下:
系统:windows xp
qt:qt 2010.02.1版,目前最新的哈。
helloworld代码如下:
C++代码 
#include <QApplication>  
#include <QPushButton>  
 
int main(int argc, char *argv[])  
{  
    QApplication app(argc,argv);  
    QPushButton b("Hello World !");  
    b.show();  
    QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));  
    return app.exec();  

#include <QApplication>  #include <QPushButton>    int main(int argc, char *argv[])  {      QApplication app(argc,argv);      QPushButton b("Hello World !");      b.show();      QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));      return app.exec();  } 

#include <QApplication>这个同文件好像是每个qt程序都要的,里面包含了QT应用程序的核心东西。
#include <QPushButton>当然是按钮的头文件了
main函数中:
先初始化一个QApplication 。
再初始化一个按钮。 QPushButton b("Hello World !");,
接着就是让按钮显示b.show();下面这句话是做牛的:
Java代码 
QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit())); 
QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));

QObject::connect()方法是qt中最重要的特性,即信号与槽机制。SIGNAL就是信号的意思啦,当b(就是按钮)被clicked了,他就发射了个信号。与这个Application(就是app)的SLOT(槽)就会响应这个信号。并执行quit().这样就退出了。
return app.exec();是让这个这个程序进入消息循环。
helloworld写好了,下面是运行这个:
步骤很简单。
加入我把源文件放在D:\qt这个目录,编译运行的过程如下:
1,qmake -project //创建qt项目的项目信息文件。创建好了是个.pro文件
2,qmake 这个命令会生成很多文件,最主要的是Makefile文件,这个文件像是ant的build脚本。
3,make,make是根据Makefile文件中的内容执行相应的任务,这里生成了中间文件和debug的exe文件(都在debug目录下),运行的个exe文件就能看到效果了。
 

特别注意:

在windows下面   make命令格式应该为nmake,打开VS的Command Prompt才行。

 

 

1.设置VS2005的环境变量
2.设置目标平台
set QMAKESPEC=win32-msvc2005
3.进入QTDIR目录运行配置,生成Makefile文件
configure -platform win32-msvc2005 -release -opensource -shared -fast -qt-sql-sqlite -plugin-sql-sqlite -no-qt3support  -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -qt-style-windowsxp -qt-style-windowsvista
4.运行nmake /I /K(附带/I /K 选项可以避免出现错误时编译自动终止,用于跳过错误继续编译其它文件)

经过这样编译的Qt库不依赖mingwm10.dll,libgcc_s_dw2-1.dll,但依赖Qt库的Dll文件和微软的CRT运行时库,使用此Qt库编译Windows平台下的程序,发布时需带上用到的Qt链接库Dll文件和微软的CRT运行时库Dll文件。

 

补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,