qt程式建立及模板程式碼分析
qt ver 5.14.2
qt Creator建立程式
Build System
- Qbs市場佔有率低,將被棄用
- qmake更輕量級
- cmake功能強大
不繁瑣的小程式用qmake,大工程檔案用cmake更好
Details
Base class有三個選項:
- QMainWindow
- QWidget
- QDialog
QMainWindow和QDialog是QWidget的子類。QWidget建立出來只有一個空白介面;QMainWindow在QWidget基礎上多了選單欄,工具欄和狀態列;QDialog對應對話方塊。
Generate form選項可以通過拖拽完成介面的設計
Translation
Translation File功能顯見
Kits
版本套件選擇,例如:Desktop對應.exe開發;UWP對應windows通用平臺開發;
qt程式組成
main.cpp
#include "mywidget.h"
#include <QApplication> // 包含一個應用程式類的標頭檔案
//main程式入口;argc命令列變數的數量;argv命令列變數的陣列
int main(int argc, char *argv[]){
//a應用程式物件,在Qt中,應用程式物件有且僅有一個
QApplication a(argc, argv);
//視窗物件,myWidget父類->QWidget
myWidget w;
//視窗物件 預設不會顯示,必須要呼叫show方法才能顯示視窗
w.show();
//讓應用程式物件進入訊息迴圈機制,視窗不會一閃而過
return a.exec();
}
.pro檔案
QT += core gui //QT包含模組
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //版本號大於4所額外包含模組
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ //原始檔
main.cpp \
mywidget.cpp
HEADERS += \ //標頭檔案
mywidget.h
FORMS += \
mywidget.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
//防止被多次include,檔案只會被編譯一次和pragma once等效
#include <QWidget>//視窗類QWidget標頭檔案
QT_BEGIN_NAMESPACE
namespace Ui { class myWidget; }
QT_END_NAMESPACE
class myWidget : public QWidget
{
Q_OBJECT //Q_OBJECT是一個巨集,允許類中使用訊號和槽的機制
public:
myWidget(QWidget *parent = nullptr);
~myWidget();
private:
Ui::myWidget *ui;
};
#endif // MYWIDGET_H
mywidget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
//命名規範
//類名 首字母大寫,單詞和單詞之間首字母大寫
//函式名 變數名稱 首字母小寫,單詞和單詞之間首字母大寫
//快捷鍵
//註釋 ctrl + /
//執行 ctrl + r
//編譯 ctrl + b
//字型縮放 ctrl + 滑鼠滾輪
//自動對齊 ctrl + i
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::myWidget)
{
ui->setupUi(this);
}
myWidget::~myWidget()
{
delete ui;
}
相關文章
- 建立TypeScript程式碼模板(NVS+Yarn+ESLint+Prettier+Husky)TypeScriptYarnEsLint
- 在VS2017中建立C++的程式碼塊模板C++
- AS 使用 Flutter 程式碼模板Flutter
- 程式碼模板 | 我的程式碼沒有else
- SQL隱碼攻擊原理及程式碼分析(二)SQL
- SQL隱碼攻擊原理及程式碼分析(一)SQL
- 自定義AndroidStudio程式碼模板Android
- 惡意程式碼分析之行為分析及樣本收集
- WPF中如何使用後臺程式碼動態建立資料模板(DataTemplate)
- 自定義Android Studio程式碼模板Android
- go模板-程式碼生成器Go
- Android 8.0 原始碼分析 (三) 應用程式程式建立到應用程式啟動的過程Android原始碼
- AsyncTask 程式碼分析
- LNet程式碼分析
- [譯]純程式碼建立 UIViewUIView
- PbootCms模板中如何寫 PHP 程式碼?bootPHP
- 資料結構程式碼常用模板資料結構
- 程式碼安全之程式碼混淆及加固(Android)?Android
- WordPress模板層次03:模板檔案中常見程式碼
- 例項QT程式 —— Qt單例不規則介面程式QT單例
- 藉助ai來分析程式碼,理解程式碼AI
- 劍指offer—49.醜數—分析及程式碼(Java)Java
- Qt學習--Qt Plugin建立及呼叫2(外掛管理器)QTPlugin
- beego框架程式碼分析Go框架
- Android UsbDeviceManager 程式碼分析Androiddev
- PbootCms模板中怎麼寫PHP程式碼bootPHP
- 常用程式碼模板4——數學知識
- PbootCMS 模板幻燈片呼叫程式碼大全boot
- PbootCMS 模板中怎麼寫PHP程式碼bootPHP
- spark 三種建立 資料集的方法,及測試(Scala程式碼)Spark
- Linux系統程式設計之程式控制(程式建立、終止、等待及替換)Linux程式設計
- Buffer的建立及使用原始碼分析——ByteBuffer為例原始碼
- 以太坊原始碼分析(5)accounts程式碼分析原始碼
- 轉載:尤拉函式知識點總結及程式碼模板及尤拉函式表函式
- ABtest原理及python程式碼Python
- 一行程式碼建立cell行程
- gitee建立倉庫如何提交程式碼Gitee
- Visual Studio模板程式碼註釋小技巧分享