1. 程式人生 > >讓你的QT顯示一個窗口吧

讓你的QT顯示一個窗口吧

pla 類型 源文件 exe () 裏的 def 模塊 tab

項目文件

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顯示一個窗口吧