?前言
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
🎬 個人主頁:@ChenPi
🐻推薦專欄1: 《C++_@ChenPi的博客-CSDN博客》????
🔥 推薦專欄2: 《LLinux C應用編程(概念類)_@ChenPi的博客-CSDN博客》???
🌺本篇簡介? :這一章我們學一下Qt這個軟件如何使用以及創建我們第一個Qt程序
Qt 是一個跨平臺的 C++開發庫
主要用來開發圖形用戶界面(Graphical User Interface,簡 稱 GUI)程序
Qt 雖然經常被當做一個 GUI 庫,用來開發圖形界面應用程序,但這并不是 Qt 的全部
Qt 除了可以繪制漂亮的界面(包括控件、布局、交互),還包含很多其它功能
比如多線程、 訪問數據庫、圖像處理、音頻視頻處理、網絡通信、文件操作等
所以如果學嵌入式,那么Qt就是其中一個大方向了
本專欄的使用的
- Linux操作系統是Ubuntu18.4?
- Qt的版本是Qt5.12.9
01新建一個qt項目
在 Ubuntu18 里打開 Qt Creator,也就是左下角軟件中心處點擊后,
找到 Qt Creator 的圖標 后點擊打開。
單擊文件 Qt Creator 的文件,選擇新建文件或者項目。
注意快捷鍵 Ctrl + N也可以新建項目
?彈出的新建項目如上圖
這里我們可以看到有很多模板(包括項目模板和文件和類模板) 可以使用,
包括 Qt,Qt Quick,Qt for Python,…,C++等等。
作為初學者我們選擇第一個 Application(Qt)和 Qt Widgets Application,
所謂的模板就是 Qt 為了方便開發程序,在新建工程 時可以讓用戶基于一種模板來編寫程序,
包括 cpp 文件,ui 文件都已經快速的創建,而不用用 戶手動創建這些文件。
這樣對用戶的開發帶來極大的便捷。
當然我們也可以自己手動創建項 目,一個一個往里面加也是可以的。
稱處輸入項目為“hello_world”
這里的項目路徑為我的個人配置的目錄,你們按需配置即可?
勾選設為默認的項目路徑
這樣以后做項目實驗時都是默認選擇這個目錄作為項目路徑而 不用自己手動選擇路徑了。
選擇下一步。 ?
默認已經是選擇 qmake 編譯,主要用 qmake 生成 Makefile 用于項目的編譯。點擊下一步即 可。 ?
?這里默認選擇的基類為 QMainWindow。
在 Base class 一項中我們還可以看到還有 QWidget 和 QWialog 這樣的基類可以選擇。
在 C++中學習什么叫基類,簡單的來說,
我們創建 的這個項目是基于 QMainWindow 類去開發的。
默認勾選“Generate form”,意思是生成 ui 窗體 文件 mainwindow.ui。
為了學習方便,我們統一默認基類為 QMainWindow,
但是注意,在嵌入 式里一般不需要標題欄,狀態欄等,所以常用的是 QWidget 基類。?
- QMainWindow:主窗口類,主窗口具有主菜單欄、工具欄和狀態欄。類似于一般的應用程 序的主窗口。如果您想做個嵌套的窗口程序開發的軟件,不妨選擇這個 QMainWindow。
- ?QWidget:是可視界面類的基類,也就是說QMainWindow類也是由QWidget繼承封裝而來。 所以 QWidget 要比 QMainWindow 功能少一些。?
- QDialog:對話框類,建立一個對話框界面。比較少使用此項作為基類。一般以 QMainWindow 和 QWidget 作為基類的居多。
因為 QWidget 不帶窗口標題欄等,嵌入式里最好 QWidget。
后面基本一直下一步就可以了,最后點擊完成
02 項目文件介紹
?
?Qt Creator 和其他 IDE 開發軟件一樣。都是分組管理項目內的各種源文件,
下面是項目內 的文件簡介。
- 01_hello_world.pro 是項目管理文件,這個項目管理文件十分重要,當您加入了文件或者刪 除了文件,Qt Creator 會自動修改這個*.pro 文件。有時候需要打開這個*.pro 文件添加我們 的設置項。
- Header 分組,這個節點下存放的是項目內所有的頭文件*.h。
- Source 分組,這個節點下存放的是項目內的所有 C++源碼文件*.cpp。
- Forms 分組,這個節點下是存放項目內所有界面文件*.ui。*.ui 文件由 XML 語言描述組成, 編譯時會生成相應的 cpp 文件,這樣交叉編譯器就可以編譯它了。
注意,有時候.pro文件不一定能給你自動修改,需要自己配置,如果編譯不了,找不到錯誤,可以到pro文件看看文件路徑啥的對不對
?我們來看一下pro文件吧,剛開始可能不知道這是干嘛的,沒事,我們來講解一下
第 1 行,添加了 Qt 的支持的模塊,core 與 gui 庫是 Qt 的默認設置。
第 3 行,比較 Qt5 版本,如果是 Qt5 版本,在 main.cpp 中 application 是在 QtWidgets 中的, 因此要包含這個庫。
第 5 行和第 11 行,分別配置的是使用 c++11 和添加 QT_DEPRECATED_WARNINGS 定義。
第 18 行,SOURCES 下的是源文件。
第 22 行,HEADERS 下是頭文件。
第 25 行,FORMS 下是 ui 界面文件。
第 28 行,部署默認的規則。
第 29 行,qnx:判斷是不是 qnx 操作系統,賦值 target.path = /temp/$${TARGET}/bin。
第 30 行,如果是 unix 系統但不是安卓,賦值 target.path = /opt/$${TARGET}/bin。
第 31 行,如果 target.path 為空目錄,賦值 INSTALLS += target。
如果需要修改生成目標的可執行程序名字,可賦值 TARGET = xxx。否則 TARGET 將默認 取值為項目的名字。 ?
大概就是這樣,到時候文件多了的時候,編譯不通過,說找不到什么文件,但你明明有的話,你可以進入到此目錄看下路徑對不對
?再來我們看下UI界面吧
①是控件欄,有各種各樣的控件,上方的 Filter 是過濾器,輸入首寫字母就可以快速定到 我們想要找的控件。
?②顯示的是我們的窗口程序了,上面已經帶有 MainWindow 對象及其幾個子對象,默認 MainWindow 就帶有菜單欄和狀態欄。
③是對象欄,②處用到的對象都在③處顯示。
④是屬性欄,點擊③處對象欄的某個對象,就可以在④屬性欄里編輯它的屬性了。屬性項 有很多,包括位置,大小,文字,顏色,字體等等。
03 修改 ui 文件顯示 hello world
直接通過拖拽的方法把Label放到Ui布局上?
字體大小在左下角可以修改
?
最后我們Ctrl+R就可以編譯運行了?
這就是第一個Qt程序了,不過在后面的學習中,我們盡量使用代碼編輯吧,這樣邏輯性會好些
下章見,謝謝大家