首页 > 技术文章 > 02:QT的第一个程序

yige2019 2020-02-11 21:49 原文

新建项目,有这么几个文件:

  1. main.cpp                      //一个main函数,作为应用程序的入口函数
  2. mainwindow.cpp
  3. mainwindow.h
  4. untitled.pro             //QT工程文件

打开main.cpp,引用代码

 1 #include <QApplication>
 2 #include <QLabel>//引用头文件
 3 
 4 int main(int argc, char *argv[])

 //argc 是 argument count的缩写,表示argv这个二级指针指向的内存区域中保存的由stub写入的有效命令行参数的个数.
//argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要输入的main函数的参数个数是argc-1个
 5 {
 6     QApplication app(argc, argv);
//
创建一个QApplication类的实例。
//对于 Qt 程序来说,main()函数一般以创建 application 对象(GUI 程序是QApplication,非 GUI
程序是QCoreApplicationQApplication实际上是QCoreApplication的子类。)开始,后面才是实际业务的代码。
7
8 QLabel label("Hello, world");
9
label.show(); 10 11 return app.exec(); 12 }

 main()函数最后,调用app.exec(),开启事件循环。我们现在可以简单地将事件循环理解成一段无限循环。正因为如此,我们在栈上构建了QLabel对象,却能够一直显示在那里(试想,如果不是无限循环,main()函数立刻会退出,QLabel对象当然也就直接析构了)。

补注:更为简单的解释:

 

#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv); //定义并创建应用程序
    Widget w; //定义并创建窗口
    w.show(); //显示窗口
    return a.exec(); //应用程序运行
}

 

推荐阅读