1.QT-第一個程序 Hello QT , 以及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自動生成即可.3
  • QT MingGW版本可以在GNU/LinuxWindows平台生成本地的Windows程序而不需要第三方運行時庫。

 

 

接下來,下章繼續學習 :  2.QT-窗口組件(QWidget),QT坐標系統,初探消息處理(信號與槽)

 

 

 


免責聲明!

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



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