Qt學習之路1--簡單介紹Qt開發

大概有四個月沒有更新技術博客了,雖然寫的還是很菜,我覺得對我還是有用的,在需要時查起來很方便,剛好最近在公司裏跟的項目需要用到Qt,趁着機會複習一下之前學的內容,這樣也能更快速的閱讀項目中的代碼,這期間有一個挺長的過程,所以勉勵自己從一開始就保存下自己的心得體會,爲日後翻閱提供第一手資料。
什麼是Qt?幹什麼用?
Qt是一套跨平臺的GUI開發庫
Qt是一套基於C++的集成開發環境
Qt是一套開源的殿堂級架構技術教程
Qt中帶有的庫可以說是C++語言最好用的類庫,資料更完善、使用更簡便、功能 更強大
QT Creater是一套可視化的集成開發環境,有強大的代碼編輯功能和編譯功能。而我們平時就在QT Creater中進行代碼編輯、編譯及調試。
編輯
編輯功能就不用多說了,相信會寫幾行代碼的人都知道編輯環境的作用了。
編譯
Qt中默認是使用qmake進行編譯的,而在Qt Creater中我們感受不到怎麼來使用qmake進行工程編譯,因爲只需要手動點擊構建和運行就能運行編寫的代碼。
下面介紹如何使用命令行對工程進行編譯:
1、打開qt命令行
2、先進入程序目錄
3、執行qmake -project命令生成工程文件
4、執行qmake命令生成Makefile文件
5、執行make編譯Makefile文件
6、執行cd debug命令
7、執行.exe文件運行程序

下面對一個簡單的Qt程序用命令行進行編譯。
首先需要準備好一個簡單的Demo,其代碼如下:

#include <QApplication>
#include <QMainWindow>
#include <QPushButton>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    QMainWindow w;
    QPushButton b(&w);

    b.setText("Hello QT!");
    w.show();

    return a.exec();
}

代碼內容就是先創建一個QApplication對象(QApplication是用來封裝消息處理循環的)建立一個主窗口w和一個按鈕b,將按鈕放到主窗口中,然後調用函數setText()爲按鈕加個字符串顯示,再就是調用w.show()顯示主窗口,此時主窗口和按鈕都會顯示出來,最後一句return語句是什麼意思呢?這是用來讓主窗口等待用戶對界面進行操作的。
這裏寫圖片描述
這裏寫圖片描述
首先,打開Qt自帶的命令行工具,進入程序目錄HelloQT,通過dir查看目錄中只有一個main.c文件,接下來執行目錄對文件進行編譯。
1、在進入程序目錄後執行qmake -project命令用來生成工程文件(.pro),通過dir查看HelloQT.pro文件已經存在了。
2、執行qmake命令生成Makefile文件及其他相關文件,可通過dir命令查看。
3、執行make命令指導Makefile文件如何執行編譯指令並生成可執行文件。
4、然後執行cd debug進入帶有可執行程序目錄。
5、最後執行HelloQT.exe運行編譯生成的可執行程序。
6、其運行結果如圖所示。
怎麼樣,是不是很簡單,雖然在平時開發中很少用命令行進行編譯,但學習這個也算是瞭解了它內部執行過程,對理解本質多少還是有點用。

調試
只要寫項目代碼就必然會出錯,出錯就需要調試,那麼介紹兩種種常用的調試方法。
Log調試法:在代碼中加入打印語句來打印程序狀態和關鍵變量的值。
斷點調試法:在對應代碼處加入斷點,當程序運行到斷點處就會停下來,此時就可以查看函數調用棧相關信息,在需要時可以加上條件斷點,當條件滿足時才暫停程序的運行。條件斷點在QT Creater中的使用:當進入調試模式後,右鍵點擊所選斷點,選擇編輯斷點,加入所需要的條件。

工程文件描述
.pro文件用於配置和組織整個項目的相關信息
.pro文件是Qt中與平臺無關的Makefile文件
CONFIG用於設定項目的配置信息和編譯選項
一般來說,項目文件中的描述都使用相對路徑
QT Creater將項目文件作爲目標文件
QTCreater在打開項目文件的同時會生成.pro.user文件,該文件包含一些與QT相關的本地配置信息,當需要在不同計算機之間移動項目源碼時,建議刪除.pro.user文件,當編譯工程時qt會自動生成一個.pro.user文件。
Qt Creater以工程項目的方式對源碼進行管理
一個QtCreater工程包含不同類型的文件(庫文件、資源文件、ui描述文件和源件)
QtCreater提供了開發所必備的快捷高效的功能(調試功能)

幾個概念
構建(build):對項目中的所有文件進行編譯,最終生成可執行程序。
Debug版:可以進行程序調試的構建版本,由於可執行程序中包含調試信息,導致運行效率不高。
Release版:最終發佈的應用程序構建版本,內部無調試信息,運行效率高。在開發中需要階段性的release版本的構建,檢查是否存在bug

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章