淄博網(wǎng)泰專業(yè)做網(wǎng)站網(wǎng)絡(luò)營(yíng)銷圖片素材
一.創(chuàng)建Qt項(xiàng)目?
打開(kāi)Qt Creator 界面選擇 New Project或者選擇菜單欄 【文件】-【新建文件或項(xiàng)目】菜單項(xiàng)
??彈出New Project對(duì)話框,選擇Qt Widgets Application
選擇【Choose】按鈕,彈出如下對(duì)話框
設(shè)置項(xiàng)目名稱和路徑,按照向?qū)нM(jìn)行下一步?
?選擇編譯套件
向?qū)?huì)默認(rèn)添加一個(gè)繼承自QMainWindow的類,可以在此修改類的名字和基類。默認(rèn)的基類有QMainWindow、QWidget以及QDialog三個(gè),我們可以選擇QWidget(類似于空窗口),這里我們可以先創(chuàng)建一個(gè)不帶UI的界面,繼續(xù)下一步
系統(tǒng)會(huì)默認(rèn)給我們添加main.cpp、mywidget.cpp、 mywidget.h和一個(gè).pro項(xiàng)目文件,點(diǎn)擊完成,即可創(chuàng)建出一個(gè)Qt桌面程序.
二.項(xiàng)目文件介紹
Qt Creator 和其他 IDE 開(kāi)發(fā)軟件一樣。都是分組管理項(xiàng)目?jī)?nèi)的各種源文件,下面是項(xiàng)目?jī)?nèi) 的文件簡(jiǎn)介。
?01_hello_world.pro 是項(xiàng)目管理文件,這個(gè)項(xiàng)目管理文件十分重要,當(dāng)你加入了文件或者刪 除了文件,Qt Creator 會(huì)自動(dòng)修改這個(gè)*.pro 文件。有時(shí)候需要打開(kāi)這個(gè)*.pro 文件添加我們 的設(shè)置項(xiàng)。
Header 分組,這個(gè)節(jié)點(diǎn)下存放的是項(xiàng)目?jī)?nèi)所有的頭文件*.h。
Source 分組,這個(gè)節(jié)點(diǎn)下存放的是項(xiàng)目?jī)?nèi)的所有 C++源碼文件*.cpp。
Forms 分組,這個(gè)節(jié)點(diǎn)下是存放項(xiàng)目?jī)?nèi)所有界面文件*.ui。*.ui 文件由 XML 語(yǔ)言描述組成, 編譯時(shí)會(huì)生成相應(yīng)的 cpp 文件,這樣交叉編譯器就可以編譯它了。
1. 項(xiàng)目文件*.pro
項(xiàng)目管理文件十分重要,當(dāng)加入了文件或者刪除了文件時(shí), Qt Creator 會(huì)自動(dòng)修改項(xiàng)目文件,有時(shí)會(huì)通過(guò)該文件來(lái)添加設(shè)置項(xiàng)。
QT += core gui #添加Qt的支持模塊,core與gui庫(kù)是Qt的默認(rèn)設(shè)置
#比較Qt5版本,若是Qt5版本,在main.cpp中application是在QtWidgets下的
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#配置使用c++11
CONFIG += c++11
#添加 QT_DEPRECATED_WARNINGS 定義
DEFINES += QT_DEPRECATED_WARNINGS
#SOURCES 下是源文件
SOURCES += \main.cpp \mainwindow.cpp
#HEADERS 下是頭文件
HEADERS += \mainwindow.h
#FORMS 下是ui界面文件
FORMS += \mainwindow.ui
#部署默認(rèn)的規(guī)則
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
2. 頭文件*.h
Headers 下的 mainwindow.h,一般有與之對(duì)應(yīng)的 cpp 文件 mianwindow.cpp,其中mainwindow.h 包含類的聲明, mianwindow.cpp 包含類的實(shí)現(xiàn)。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } //定義命名空間Ui
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECT //所有用到信號(hào)的類都要加這個(gè)宏public:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW
?3. 源文件*.cpp
Sources 下的 mainwindow.cpp,有如下內(nèi)容:
#include "mainwindow.h"
// ui_mainwindow.h 文件是Qt根據(jù).ui文件自動(dòng)生成的,即要點(diǎn)擊構(gòu)建后才生成
#include "ui_mainwindow.h"
//在MainWindow構(gòu)造函數(shù)中用“,”隔開(kāi),new一個(gè)Ui中的 MainWindow,里初始化成員的一種方法
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow)
{ui->setupUi(this); //進(jìn)行界面初始化
}MainWindow::~MainWindow()
{delete ui; //刪除ui
}
Sources 下的 main.cpp,有如下內(nèi)容:
#include "mainwindow.h"
//包含QApplication類的定義。每個(gè)應(yīng)用程序中都必須使用QApplication對(duì)象
//QApplication管理了各種各樣的應(yīng)用程序的廣泛資源,比如默認(rèn)的字體和光標(biāo)
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w; //創(chuàng)建MainWindow對(duì)象ww.show(); //調(diào)用方法show(),顯示程序界面//main()把控制轉(zhuǎn)交給Qt,當(dāng)應(yīng)用程序退出時(shí)exec()就會(huì)返回//在exec()中,Qt接受并處理用戶和系統(tǒng)的事件并把它們傳遞給適當(dāng)?shù)拇翱诓考eturn a.exec();
}
4. 樣式文件*.ui
ui 文件由 XML 語(yǔ)言描述組成,編譯時(shí)會(huì)生成相應(yīng)的 cpp 文件,這樣交叉編譯器就可以編譯它了。mainwindow.ui 是一個(gè) xml 類型的文件,內(nèi)容如下。 ui 文件是生成的不能手動(dòng)編輯,只能夠通過(guò)圖形界面修改其屬性,雙擊 mainwindow.ui 后可以跳轉(zhuǎn)到設(shè)計(jì)界面。
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>MainWindow</class><widget class="QMainWindow" name="MainWindow"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>MainWindow</string></property><widget class="QWidget" name="centralwidget"/><widget class="QMenuBar" name="menubar"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>28</height></rect></property></widget><widget class="QStatusBar" name="statusbar"/></widget><resources/><connections/>
</ui>