Qt快速入門學習筆記(基礎篇)

本文基於Qter開源社區論壇版主yafeilinux編寫的《Qt快速入門系列教程目錄》,網址:http://bbs.qter.org/forum.php?mod=viewthread&tid=193。參考書爲基於該系列教程《Qt Creator快速入門》《Qt及Qt Quick開發實戰精解》php

一、關聯Qt庫。若是是分別安裝的Qt Creator和Qt庫,而不是安裝集成Qt Creator和Qt庫的SDK,則須要手動關聯Qt庫。打開工具→選項菜單,而後選擇「構建和運行」一項,再進入Qt版本選項卡。點擊右上角的「添加」按鈕,而後會讓選擇qmake.exe文件,咱們在Qt(不是Qt Creator)安裝目錄的bin目錄中找到該文件並打開。如今已經默認生成了版本信息,咱們點擊肯定按鈕便可。linux

二、關聯MinGW。在安裝Qt 4.8.6及之後的Qt 4版本時,應該按照安裝時的提示來下載相應版本的MinGW,否則編譯程序沒法運行。若是是Qt4版本,須要使用GCC 4.4,也就是MinGW須要是4.4版本的,其餘新的版本均不可用。在Qt 4.8版本,須要下載並指定GDB才能正常調試。下載完MinGW和GDB之後,將其解壓到Qt的安裝目錄中,好比這裏都解壓到了C:\Qt目錄中。打開工具→選項菜單,而後選擇「構建和運行」一項,再進入工具鏈選項卡。點擊右上角的「添加」按鈕,而後會讓選擇mingw32-g++.exe文件,咱們在MinGW安裝目錄的bin目錄中找到該文件並打開。關聯GDB則進入調試器選項卡添加GDB相關exe文件。設計模式

  若是安裝的是集成開發包QtSDK,則不須要手動關聯Qt庫、MinGW和GDB,由Qt自動關聯。app

  注意:Qt5之後版本默認也包含了全部須要的工具,不存在這裏的狀況,直接下載安裝便可使用!編輯器

三、在建立桌面版項目時,最好選中「使用影子構建」,這樣編譯生成的文件會和源碼分別存放,以下圖所示。編譯完成後會發現多了一個helloworld-build-desktop-Qt_4_8_1__4_8_1____目錄,裏面存放的就是編譯生成的文件。這就是前面建立項目講到的 「使用影子構建」 ,若是沒有選中這個,那麼生成的文件就會和源碼在同一個目錄裏。函數

 

四、補充:若是要給生成的exe可執行文件更換一個自定義圖標,能夠這樣作:
(1)在項目中添加一個myapp.rc(名字能夠隨意)文件,而後在裏面輸入下面一行代碼:IDI_ICON1               ICON    DISCARDABLE     "appico.ico",這裏的appico.ico就是本身的.ico圖標文件;工具

(2)在.pro項目文件中添加下面一行代碼:RC_FILE = myapp.rc,佈局

(3)從新編譯ui

    若是須要更換新的圖標,建議先清理項目的編譯文件,再從新編譯,不然可能會報錯,以下。this

「:-1: 錯誤:No rule to make target `..\helloworld\myapp.rc', needed by `debug/myapp_res.o'.  Stop.」

五、在建立主窗口MainWindow項目後,打開mainwindow.ui文件進入設計模式。在這裏能夠看到界面左上角的「在這裏輸入」,咱們能夠在這裏添加菜單。雙擊「在這裏輸入」,將其更改成「文件(&F)」,而後按下回車鍵,效果以下圖所示。這裏的&F代表將菜單的快捷鍵設置爲了Alt+ F,能夠看到,實際的顯示效果中&符號是隱藏的。

 

一樣的方法,咱們在文件菜單中添加「新建(&N)」子菜單,效果以下圖所示。菜單後面的那個加號圖標是用來建立下一級菜單的。

 

Qt中的一個菜單被看作是一個Action,咱們在下面的Action編輯器中能夠看到剛纔添加的「新建」菜單,以下圖所示。

 

雙擊該條目,會彈出編輯動做對話框,這裏能夠進行各項設置,好比咱們能夠設置菜單的快捷鍵,點擊一下快捷鍵後面的行編輯器,而後按下鍵盤上的Ctrl + N,這樣就能夠將該菜單的快捷鍵設置爲Ctrl + N。以下圖所示。那麼你們可能會問,既然該菜單的快捷鍵是這麼設置的,那麼前面設置的「新建(N)」中的N是什麼呢?這個能夠被稱爲加速鍵,就是隻有當文件菜單處於激活(顯示)狀態時,按下N鍵纔會執行新建菜單的功能。

 

六、Qt中可使用資源文件將各類類型的文件添加到最終生成的可執行文件中,這樣就能夠避免使用外部文件可能出現的一些問題。並且,在編譯時Qt還會將資源文件進行壓縮,咱們可能發現生成的可執行文件比咱們添加到其中的資源文件還要小。建立完資源文件後會自動打開該資源文件,這裏須要先在下面添加前綴,就是點擊添加按鈕,而後選擇前綴,默認的前綴是「/new/prefix1」,這個能夠隨意修改(不要出現中文字符),咱們這裏由於要添加圖片,因此修改成/myImages。而後再按下添加按鈕來添加文件,這裏最好將全部要用到的圖片放到項目目錄中。好比咱們這裏在項目目錄中新建了一個images文件夾,而後將須要的圖標文件粘貼進去。添加完文件後,以下圖所示。

 

當添加完資源後,必定要按下Ctrl + S來保存資源文件,否則在後面可能沒法顯示已經添加的資源。

對於添加的資源文件,在項目目錄中能夠看到,即myResources.qrc,使用寫字板程序將其打開,能夠發現它其實就是一個XML文檔:
<RCC> 
    <qresourceprefix="/myImages">
       <file>images/filenew.png</file>
       <file>images/fileopen.png</file>
       <file>images/filesave.png</file>
       <file>images/filesaveas.png</file>
       <file>images/find.png</file>
    </qresource>
</RCC>

七、使用代碼添加菜單時,在構造函數中添加以下代碼:

QAction *openAction = new QAction(QString::fromUtf8("&Open"), this);// 建立新的動做 
QIcon icon(":/myImages/images/fileopen.png");// 添加圖標 
openAction->setIcon(icon);
openAction->setShortcut(QString::fromUtf8("Ctrl+O"));// 設置快捷鍵
ui->menu_F->addAction(openAction);// 在文件菜單中設置新的打開動做
這裏添加圖標時,就是使用的資源文件中的圖標。使用資源文件,須要在最開始使用冒號,而後添加前綴,後面是文件的路徑。在代碼中使用文件菜單,就是使用其objectName。你們如今能夠運行程序查看效果,固然這裏也能夠將Open改成中文。
 
八、向工具欄添加圖標:能夠將動做編輯器中的動做拖動到工具欄中做爲快捷圖標使用;能夠在工具欄上點擊鼠標右鍵來添加分隔符。
九、使用垂直佈局管理器(QVBoxLayout)佈局:部件自動垂直排列,而且進行水平拉伸,不管如何改變佈局管理器的大小,按鈕老是水平方向變化。
  使用垂直分裂器(QSplitter)佈局:部件自動垂直排列,但進行放大能夠發現,使用分裂器按鈕縱向是能夠變大的,這就是分裂器和佈局管理器的重要區別。
十、快速從頭文件聲明處建立函數定義的方法:到mainwindow.h文件中,將鼠標定位到showFindText()函數上,而後點擊右鍵,在彈出的菜單中選擇「重構」→「在mainwindow.cpp添加聲明」,或者直接使用Alt+Enter快捷鍵,這樣就會直接在mainwindow.cpp文件中添加函數定義,並跳轉到該函數處。
 

十一、在QtCreator中有幾種快速定位函數的方法:

第一種,在函數聲明的地方直接跳轉到函數定義的地方。
例如咱們在mainwindow.h文件的loadFile()函數上點擊鼠標右鍵,在彈出的菜單上選擇「在方法聲明/定義之間切換」,這時就會自動跳轉到mainwindow.cpp文件中該函數的定義處。以下圖所示。固然還能夠反向使用。
第二種,快速查看一個文件裏的全部函數。
能夠在編輯器正上方的下拉框裏查看正在編輯的文件中全部的函數的列表,點擊一個函數就會跳轉到指定位置。以下圖所示。
第三種,使用類視圖或者大綱視圖。
在項目列表上面的下拉框中能夠更改查看的內容,若是選擇爲類視圖或者大綱,則會顯示文件中全部的函數的列表。以下圖所示。
第四種,使用查找功能查看函數的全部調用處。 
在一個函數名上點擊鼠標右鍵,而後選擇「查找何處被使用」菜單,這時就會在下面的搜索結果欄中顯示該函數全部的使用位置。咱們能夠經過點擊一個位置來跳轉到該位置。以下圖所示。
 

十二、在Action編輯器中,有兩個屬性toolTip和statusTip,分別爲工具欄提示和狀態欄提示,以下圖

這時運行程序,當光標移動到新建動做上時,在下面的工具欄和狀態欄將會出現設置的提示。以下圖所示

1三、狀態信息能夠被分爲三類:臨時信息,如通常的statusTip提示信息,上面講到的動做提示就是臨時信息;正常信息,如顯示頁數和行號;永久信息,如顯示版本號或者日期。可使用showMessage()函數來顯示一個臨時消息,它會出如今狀態欄的最左邊。通常用statusBar->addWidget()函數添加一個QLabel到狀態欄上用於顯示正常信息,它會生成到狀態欄的最左邊,可能會被臨時消息所掩蓋。若是要顯示永久信息,要使用statusBar->addPermanentWidget()函數來添加一個如QLabel同樣的能夠顯示信息的部件,它會生成在狀態欄的最右端,不會被臨時消息所掩蓋。

1四、關於隨機數,在Qt中是使用qrand()和qsrand()兩個函數實現的。在使用qrand()函數產生隨機數以前,通常要使用qsrand()函數爲其設置初值,若是不設置初值,那麼每次運行程序,qrand()都會產生相同的一組隨機數。爲了每次運行程序時,均可以產生不一樣的隨機數,咱們要使用qsrand()設置一個不一樣的初值。

相關文章
相關標籤/搜索