一. 下載和安裝
qt官網(wǎng)下載 : https://download.qt.io
archive 和 official_releases 兩個目錄都有最新的 Qt 開發(fā)環(huán)境安裝包,我們以 archive 目錄里的內(nèi)容為例來說明。點(diǎn)擊進(jìn)入 archive 目錄,會看到四個子目錄:
進(jìn)入qt文件夾, 就能看到不同版本的qt, 為了兼容性和好找教程的考慮, 我選了qt 5.12.12版本
安裝過程比較順利, 如果需要登陸賬號, 那一步斷網(wǎng)即可, 或者注冊一個賬號也行
選擇適合的組件, 保險起見, 我都選了
二. 創(chuàng)建qt項(xiàng)目
0. 關(guān)于QT創(chuàng)建工程的類型
- Qt Widgets Application:桌面平臺的圖形用戶界面(GUI)應(yīng)用程序
- Qt Console Application:控制臺應(yīng)用程序,一般用于學(xué)習(xí)C/C++語言
- Qt Quick Application:創(chuàng)建可部署的Qt Quick2應(yīng)用程序。Qt Quick是Qt支持的一套GUI開發(fā)架構(gòu)。采用QML設(shè)計界面,程序框架采用C+語言
- Qt Quick Controls2 Appl ication:創(chuàng)建基于Qt Quick Control2組件的可部署的Qt Quick2應(yīng)用程序。
- Qt Canvas3 D Application:基于QML語言的界面設(shè)計,支持3D畫布。
1. 創(chuàng)建項(xiàng)目
創(chuàng)建工程(注意不要有中文路徑)
選擇編譯工具, 我們暫時先選擇qmake
qt6.0開始,cmake全面替代qmake, 雖然cmake麻煩一點(diǎn), 但是功能更強(qiáng)大, qt團(tuán)隊日后可能會不維護(hù)qmake了
選擇基類
關(guān)于基類:
- QObejct : QT基類
- QWidget : 組件基類, 是所有具有可視化界面類的基類,各種界面組件都支持
- QMainWindow :主窗口類,具有主菜單、工具欄和狀態(tài)欄,類似一般程序的主窗
- QDialog : 對話框類,建立基于對話框的界面
開啟翻譯(暫不開啟)
選擇開發(fā)套件
完成創(chuàng)建, 完成時, 會給你一個匯總信息
三. 看一下默認(rèn)生成的工程
1. 項(xiàng)目結(jié)構(gòu)
生成的項(xiàng)目文件
2. 關(guān)于.pro配置文件
qt項(xiàng)目的目錄結(jié)構(gòu)很簡單, 我們唯一不認(rèn)識的也就是.pro文件, 他是項(xiàng)目的配置文件
3. main.cpp文件
上面創(chuàng)建項(xiàng)目過程中,自動創(chuàng)建了main.cpp文件, 其結(jié)構(gòu)內(nèi)容如下:
#include "widget.h"
#include <QApplication>
// argc : 命令行變量的數(shù)量 argv : 命令行變量的數(shù)組 // 系統(tǒng)給qt構(gòu)建的app傳參都會經(jīng)過它們
int main(int argc, char *argv[])
{
QApplication a(argc, argv); // 應(yīng)用程序?qū)ο? 單例
Widget w; // 實(shí)例化基類, 創(chuàng)建窗口對象
w.show(); // 顯示窗口對象
return a.exec(); // 讓app進(jìn)入消息循環(huán)機(jī)制
}
4. 基類文件 widget.h / widget.cpp
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
class Widget : public QWidget //我的基類繼承自QWidget
{
Q_OBJECT //Q_OBJECT宏, 允許在類中使用信號和宏機(jī)制
public:
Widget(QWidget *parent = nullptr); // 構(gòu)造函數(shù)
~Widget(); //析構(gòu)函數(shù)
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
}
Widget::~Widget()
{
}
四. 終端打印
在QT終端中打印, 我們使用QDebug, 注意真正用時用qDebug
在Qt里使用字符串類型, 我們使用QString
#include <QDebug>
QString c = "hello";
qDebug() << "c:"<< c;
我們發(fā)現(xiàn)打印出來的文字自帶引號, 如果想去掉引號:
需要把QString 轉(zhuǎn)為 QByteArray 在轉(zhuǎn)為 char *
qDebug() << "c:"<< c.toUtf8().data();
五. 拷貝別人工程注意事項(xiàng)
拷貝別人的工程, 如果直接編譯,很可能回報錯, 此時刪除這個文件就可以了
再通過.pro打開項(xiàng)目編譯即可