創建Qt項目


創建Qt項目

 

1     創建Qt項目

2.1 使用向導創建

打開Qt Creator 界面選擇 New Project或者選擇菜單欄 【文件】-【新建文件或項目】菜單項

 

 

彈出New Project對話框,選擇Qt Widgets Application,

 

 

選擇【Choose】按鈕,彈出如下對話框

設置項目名稱和路徑,按照向導進行下一步,

 

 

選擇編譯套件

 

 

向導會默認添加一個繼承自CMainWindow的類,可以在此修改類的名字和基類。繼續下一步

 

 

即可創建出一個Qt桌面程序。

 

2.2       手動創建

添加一個空項目

 

選擇【choose】進行下一步。設置項目名稱和路徑 —> 選擇編譯套件 --> 修改類信息 --> 完成(步驟同上),生成一個空項目。在空項目中添加文件:在項目名稱上單擊鼠標右鍵彈出右鍵菜單,選擇【添加新文件】

 

彈出新建文件對話框

 

 

在此對話框中選擇要添加的類或者文件,根據向導完成文件的添加。

 

2.3       .pro文件

在使用Qt向導生成的應用程序.pro文件格式如下:

#-------------------------------------------------
#
# Project created by QtCreator 2017-11-08T15:50:51
#
#-------------------------------------------------

# 模塊
QT       += core gui

# 高於4版本, 添加 QT += widgets, 為了兼容QT4
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

# 應用程序的名字
TARGET = 01_QtTest

# 指定Makefile的類型, app
TEMPLATE = app

# 源文件 .cpp文件
SOURCES += main.cpp\
        mywidget.cpp

# 頭文件 .h文件
HEADERS  += mywidget.h

.pro就是工程文件(project),它是qmake自動生成的用於生產makefile的配置文件。.pro文件的寫法如下:

注釋

        從“#”開始,到這一行結束。

模板變量告訴qmake為這個應用程序生成哪種makefile。下面是可供使用的選擇:TEMPLATE = app

        app -建立一個應用程序的makefile。這是默認值,所以如果模板沒有被指定,這個將被使用。

        lib - 建立一個庫的makefile。

        vcapp - 建立一個應用程序的VisualStudio項目文件。

        vclib - 建立一個庫的VisualStudio項目文件。

        subdirs -這是一個特殊的模板,它可以創建一個能夠進入特定目錄並且為一個項目文件生成makefile並且為它調用make的makefile。

#指定生成的應用程序名:

        TARGET = QtDemo

#工程中包含的頭文件

        HEADERS += include/painter.h

#工程中包含的.ui設計文件

        FORMS += forms/painter.ui

#工程中包含的源文件

        SOURCES += sources/main.cpp sources/painter.cpp

#工程中包含的資源文件

        RESOURCES += qrc/painter.qrc

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

        這條語句的含義是,如果QT_MAJOR_VERSION大於4(也就是當前使用的Qt5及更高版本)需要增加widgets模塊。如果項目僅需支持Qt5,也可以直接添加“QT += widgets”一句。不過為了保持代碼兼容,最好還是按照QtCreator生成的語句編寫。

#配置信息

        CONFIG用來告訴qmake關於應用程序的配置信息。

        CONFIG += c++11   //使用c++11的特性

在這里使用“+=”,是因為我們添加我們的配置選項到任何一個已經存在中。這樣做比使用“=”那樣替換已經指定的所有選項更安全。

 

2.4       一個最簡單的Qt應用程序

#include "mywidget.h"
#include <QApplication>

// QApplication 應用程序類
// QT頭文件沒有.h
// 頭文件名和類名一樣
int main(int argc, char *argv[])
{
    // 有且只有一個應用程序類的對象
    QApplication a(argc, argv);

    // MyWidget繼承於QWidget, QWidget是一個窗口基類
    // 所以MyWidget也是一個窗口類
    // w就是一個窗口對象
    MyWidget w;

    // w窗口對象創建默認是隱藏, 需要執行show方法
    w.show();

    // 讓程序一直執行, 等該用戶執行操作
    // 等待事件的發生, 然后處理事件
    return a.exec();
}

 

解釋:

        Qt頭文件沒有.h后綴

        Qt一個類對應一個頭文件,類名就是頭文件名

        QApplication應用程序類

                管理圖形用戶界面應用程序的控制流和主要設置。

                是Qt的整個后台管理的命脈它包含主事件循環,在其中來自窗口系統和其它資源的所有事件處理和調度。它也處理應用程序的初始化和結束,並且提供對話管理

                對於任何一個使用Qt的圖形用戶界面應用程序,都正好存在一個QApplication 對象,而不論這個應用程序在同一時間內是不是有0、1、2或更多個窗口。

        a.exec()

                程序進入消息循環,等待對用戶輸入進行響應。這里main()把控制權轉交給Qt,Qt完成事件處理工作,當應用程序退出的時候exec()的值就會返回。在exec()中,Qt接受並處理用戶和系統的事件並且把它們傳遞給適當的窗口部件。

 

 

QT5 基本模塊

 

/* Start of mytest.cpp */

#include <QApplication>
#include <QWidget>
#include <QPushButton>

int main(int argc, char * argv[])
{
    QApplication app(argc, argv);

    QWidget w;
    w.setWindowTitle(QString::fromUtf8("標題"));


    /*
     * 如果不指定父對象,對象和對象(窗口和窗口)沒有關系, 相互獨立
     * a指定b為它的父對象, a放在b的上面
     * 指定父對象, 有兩中方式:
     *      1. setParent
     *      2. 通過構造函數傳參
     * 指定父對象, 只需要父對象顯示, 上面的子對象自動顯示
     */

    QPushButton b;
    b.setText(QString("^_^"));
    b.setParent(&w); // 使用setParent設置父對象
    b.move(QPoint(150, 150));

    QPushButton b1(&w); // 使用構造函數傳參,指定父對象
    b1.setText(QString("abc"));
    b1.move(QPoint(50, 50));

    w.resize(QSize(500, 500));
    w.show();
    return app.exec();
}


/* End of mytest.cpp */

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM