欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

让你的QT显示一个窗口吧

程序员文章站 2022-04-28 15:35:59
项目文件 01_QtTest.pro 头文件 mywidget.h 源文件 main.cpp mywidget.cpp 结果显示 ......

项目文件

01_qttest.pro

#-------------------------------------------------
#
# project created by qtcreator 2019-04-11t17:07:35
#
#-------------------------------------------------

#添加qt支持的模块,一个是core基础代码模块,包含运算的,gui是图形界面库
qt       += core gui

#如果qt主版本大于4(也就是说当前使用的是qt5或者更高版本),则需要添加widgets模块
greaterthan(qt_major_version, 4): qt += widgets

# 应用程序的名字
target = 01_qttest

#指定makefile的类型, app
template = app

#工程项目包含的源文件
sources += main.cpp \
           mywidget.cpp
           mywidget.cpp

#工程项目包含的头文件
headers  += mywidget.h

头文件

mywidget.h

/**********************************
语句1 #ifndef 标识1
语句2 #define 标识1
语句3 #endif
语句4 ……
语句5 ……
该段代码意思是:如果标识1没有被定义,则重定义标识1,即执行语句2、语句3;
如果标识1已经被定义,则直接跳过语句2、语句3,直接执行语句4、语句5、……
***********************************/

#ifndef mywidget_h
#define mywidget_h

#include <qwidget>

class mywidget : public qwidget//光标停留在红色字体这里,点击f1可以查找手册
{
    q_object//信号与槽时候需要的

public:
    mywidget(qwidget *parent = 0);
    /****************************
     * qwidget*parent=0,父控件引用,用于向或者从父控件传递事件signal-slot那些。
     * 这个不是继承关系,而是图形界面上各个组件之间的逻辑拓扑关系。
     * 比如放在tab里的textbox要随着tab大小的变化而变动自己的尺寸,事件就是通过这个传递的。
     * 形参里面写着parent=0,是默认值0,c++可以通过预赋值“省略”一些形参。
     * 你这里就是mywidget不是任何控件的子控件。
     * 整个下来,mywidget继承qwidget,构造函数默认为0.
     * 可以在构造函数初始化一切你想要的东西,说白点就是前戏!!
     ***************************/
    ~mywidget();//对象消亡时,自动被调用,用来释放对象占用的空间
};

#endif // mywidget_h

源文件

main.cpp

#include "mywidget.h"

//qapplication应用程序类
//qt头文件没有.h
//头文件和类名一样
#include <qapplication>

int main(int argc, char *argv[])
{
    //有且只有一个应用程序类的对象
    qapplication a(argc, argv);

    //mywidget继承与qwidget,qwidget是一个窗口基类
    //所以mywidget也是窗口类
    //w就是一个窗口
    mywidget w;

    //窗口创建默认是隐藏,需要人为显示
    w.show();

    //让程序一直执行,等待用户操作
    //等待事件的发生
    return a.exec();
}

mywidget.cpp

#include "mywidget.h"

mywidget::mywidget(qwidget *parent)
    : qwidget(parent)
{
}

mywidget::~mywidget()
{

}

结果显示

让你的QT显示一个窗口吧