第一個程式 - Hello QT 首先寫main.cpp: win平臺上,命令行編譯 進入main.cpp所在目錄“1.Hello QT”,輸入: 接下來,進入debug文件,運行1.exe: 如果想刪除配置: linux平臺上,命令行編譯 同樣輸入: 運行: 3.使用Qt creator編譯 註意 ...
第一個程式 - Hello QT
首先寫main.cpp:
#include <QApplication> #include <QMainWindow> #include <QPushButton> int main(int argc, char* argv[]) { QApplication a(argc, argv); // Qapplication表示一個應用程式,而它的成員函數exec()則用來執行程式以及消息處理
QMainWindow w; //定義一個QmainWindow主視窗對象w QPushButton b(&w); //通過&w,在主視窗上定義QpushButton按鈕對象b
b.setText("Hello QT!"); //通過b對象的成員函數setText(),設置按鈕名字為Hello QT w.show(); //顯示主視窗
return a.exec(); //通過exec()執行程式以及消息處理 }
win平臺上,命令行編譯
進入main.cpp所在目錄“1.Hello QT”,輸入:
qmake -project //通過-project參數,將源碼生成(*.pro)工程文件 qmake //根據工程文件生成makefile make //根據makefile進行編譯,生成debug文件夾
接下來,進入debug文件,運行1.exe:
如果想刪除配置:
make clean //刪除配置文件,如果想再次編譯,只需要make即可 make distclean //刪除配置文件以及make,如果想再次編譯,可以通過qmake和make
linux平臺上,命令行編譯
同樣輸入:
qmake -project //通過-project參數,將源碼生成(*.pro)工程文件 qmake //根據工程文件生成makefile make //根據makefile進行編譯,生成可執行文件
運行:
3.使用Qt creator編譯
註意:構建項目時,如果出現以下問題,則可能環境變數未設置好,或者環境變數的qt路徑前面有 “(” 或 “)” 字元,從而導致:Interrupt/Exception caught code = 0xc00000fd
調試
調試分為兩種
列印調試
頭文件 #include <QDebug>
比如列印5,代碼里輸入:
qDebug()<<5;
斷點調試
除了設置普通斷點外,還可以設置條件斷點(指程式滿足條件,將會暫停)
如下圖所示,在第17行處設斷點:
然後設置17行處的斷點的條件為i==3:
開始調試
從列印處可以看到,代碼運行到i=3時便暫停了:
QT creator介紹
構建(bulid)
對項目中所有文件進行編譯,最終生成可執行程式
Debug版
用來進行調試的版本,程式中會包含調試信息,所以運行效率低
Release版
最終發佈的版本,無調試信息,運行效率高
QT Creator工程介紹
.pro項目描述文件
其本質就是一個簡化的Makefile,通過不同平臺的qmake生成不同平臺的Makefile,如下圖所示:
.pro項目描述文件介紹
基本構成如下圖所示:
高級變數如下圖所示:
其中CONFIG的常用選項有:
- debug : 構建debug版本的可執行程式
- release : 構建release版本的可執行程式
- debug_and_release : 同時構建debug和release版本
- wran_on : 儘可能多的輸出警告信息
- wran_off : 不輸出警告信息
通過上面的學習,我們就能看懂下麵的.pro項目描述文件了:
QT += core gui #添加core和gui模塊(QT不僅只涉及顯示模塊,還有資料庫,多線程,網路等等) greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #如果當前版本大於4.0,則需要widgets模塊 TARGET = HelloWorld #以win平臺為例,生成的程式為:HelloWorld.exe TEMPLATE = app #聲明編譯出來的是app程式,而不是庫文件 INCLUDEPATH += E:/BCC/include \ #指定頭文件路徑 E:/VC/include SOURCES += Main.cpp \ #源文件 HelloWorld.cpp HEADERS += HelloWorld.h #頭文件名 FORMS += HelloWorld.ui #指定界面描述文件 RC_FILE += MyIco.rc #指定資源文件,比如圖片 LIBS += -LE:/vlc-1.11/sdk/lib #指定外部庫 CONFIG += warn_on debug #構建debug版本,並輸出警告信息 # # if 'debug' option is set for CONFIG # CONFIG(debug) { #如果CONFIG有debug選項 DEFINES += DEBUG_LOG #則定義: #define DEBUG_LOG SOURCES += DebugLog.cpp #並添加debug相關文件 HEADERS += DebugLog.h }
註意:
- QT Creator生成的.pro.user文件,包含的是與平臺相關的配置信息,與我們無關,不需要修改該文件
- 移植項目時需要刪除.pro.user這個文件,需要時,再由QT Creator自動生成即可
接下來,下章繼續學習QT中的部件與坐標~