zoukankan      html  css  js  c++  java
  • 02:QT的第一个程序

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

    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(); //应用程序运行
    }
  • 相关阅读:
    Redis源代码分析(十三)--- redis-benchmark性能測试
    kvm中运行kvm
    umount.nfs device busy day virsh extend diskSpace, attachDisk
    ultravnc
    openNebula dubug
    maintenance ShellScripts
    virsh VMI deploy data serial xml
    cloud computing platform,virtual authentication encryption
    基于C 的libvirt 接口调用
    storage theory
  • 原文地址:https://www.cnblogs.com/yige2019/p/12296957.html
Copyright © 2011-2022 走看看