qt第一个程序

前两节我们了解如何在Visual Studio和Qt Creator中搭建Qt开发环境,并建立了第一个Hello Wolrd程序。

今天我们开始真正了解Qt第一个程序的实现细节,了解第一个程序的代码原理。今后所有的程序实现我都是基于Visual Studio 2010实现的,不过想在其他环境下实现都是一样的。有问题也可以及时询问我。

Hello World
新建一个Qt程序基于Qwidget实现的,过程不再叙述。新建的Hello World程序如下:

包含四个部分,hellworld.ui、helloworld.h、helloworld.qrc、helloworld.cpp还有我们的main.cpp。这一节我们主要讲述helloworld.cpp 和main.cpp,其他的文件类型等我们以后再讲述。我们在helloworl.cpp里面添加一段代码。

main.cpp详解
#include “helloworld.h” (a)
#include <QtWidgets/QApplication> (b)

int main(int argc, char *argv[]) ©
{
QApplication a(argc, argv); (d)
HelloWorld w; //创建一个widget对象
w.show(); (e)
return a.exec(); (f)

(a) # include “helloworld.h”:包含了程序要完成功能的HelloWorld类的定义,在HelloWorld类中封装完成所需要的功能。使用哪个类就必须将包含该类的头文件引用过来。例如,若用到一个标签类,则必须在此处添加一行代码#include< QLabel >,这表明包含了标签(QLable)类的定义。

(b) #include< QtWidgets/QApplication>:Application类的定义。在每一个使用Qt图形化应用程序中都必须使用一个QApplication对象。QApplication管理了各种各样的图形化应用程序的广泛资源、基本设置、控制流及事件处理等。

© int main(int argc, char *argv[]):应用程序的入口,几乎在所有使用Qt的情况下,main()函数只需要在将控制转交给Qt库之前执行初始化,然后Qt库通过事件向程序告知用户的行为。所有的Qt程序必须有且只有一个main()函数。main()函数有两个参数,即argc和argv。argc是命令行变量的数量,argv是命令行变量的数组。

(d) QApplication a(argc, argv):a是这个程序的QApplication对象。在任何Qt的窗口系统部件被使用之前必须创建QApplication对象。它在这里被创建并且处理这些命令行变量。所有被Qt识别的命令行参数都将从argv中被移去(并且argc也因此减少)。

(e) w.show():当创建一个窗口部件的时候,默认它是不可见的,必须调用show()函数使它变为可见。

(f) return a.exec():程序进入消息循环,等待可能的输入进行响应,这里就是main()函数控制权交给Qt,Qt完成事件处理工作,当应用程序退出的时候,exec()函数的值就会返回。在exec()函数中,Qt接受并处理用户和系统的事件并且将他们传递给适当的窗口部件。

Helloworld.cpp详解
#include “helloworld.h”

HelloWorld::HelloWorld(QWidget *parent)
QMainWindow(parent)
{
ui.setupUi(this);
/*定义label标签,其父窗口为this,即当前继承来的parent*/
QLabel *label = new QLabel(this);    

/*定义标签内容“Hello Qt”*/           
label->setText("Hello Qt!");

/*定义标签内容上下左右居中*/
label->setAlignment(Qt::AlignCenter);

/*定义标签大小(宽度:600;高度:400),这个宽度和高度是Qwidget的宽度和高度,为的使文字居中*/
label->resize(600,400);

}

猜你喜欢

转载自blog.csdn.net/weixin_37565521/article/details/104579390