項目文件 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()
{
}