Qt學習目錄及總結
1、Qt簡介
Qt5模組簡介:
Qt Widgets:視窗有關的類;
Qt Webkit:網路相關的類;
Qt Test:測試模組;
Qt SQL:資料庫相關類;
Qt Quick & Qt QML & Qt Quick Controls & Qt QML Dialogs :嵌入式應用程式開發 js開發(智慧家居)
Qt Mulitmedia Widgets:媒體相關;
Qt Core & Qt GUI:基礎模組;
Qt Network:網路相關類;比如套接字
Qt Mulitmedia:媒體播放相關;
常用快捷鍵:
1)幫助文件:F1(游標在函式名字或類名上,按F1即可跳轉到對應的幫助文件,檢視其詳細用法,5.14.0有時打不開,先F2再F1)
2).h檔案和對應.cpp檔案切換:F4
3)編譯和執行:Ctrl + R
4)函式宣告和定義(函式呼叫和定義)切換 :F2
5)程式碼註釋取消註釋:Ctrl + / (選中程式碼再按快捷鍵)
6)字型變大變小:Ctrl + 滑鼠滾輪向上或向下
7)移動程式碼:選中所要移動的程式碼 -> 按住Ctrl + Shift + 鍵盤上下方向鍵 即可上下移動。主要用於linux平臺
8)查詢替換關鍵字:Ctrl + f
9)快速開啟程式碼所在目錄:編輯模式下 -> 選中專案檔案 -> 右擊 -> 選擇“顯示包含的目錄”,即可顯示專案所在目錄(此方法同樣可以開啟程式碼檔案所在目錄)
2、建立Qt程式
1>. 一個Qt程式的組成部分:至少有兩個基本類 應用程式類、視窗類
2>. 應用程式類個數:有且只有一個QApplication a;
3>. 如何檢視類對應模組:游標移動到類上,按F1; qmake += 模組的名字
3、第一個Qt程式
1>. 在視窗中新增按鈕
類名:QPushButton
設定按鈕顯示的內容:setText
移動按鈕位置:move
按鈕設定父視窗:setParent
設定視窗大小: 可改變的大小:resize()、 固定大小: resizeFixed();
2>. Qt的座標體系
座標原點:左上角
x軸延伸的方向:向右遞增
y軸延伸的方向:向下遞增
3>. Qt記憶體回收機制
滿足什麼條件下的類不需要使用者手動釋放記憶體?
1、由QObject類直接或間接派生
2、給直接或間接派生出的類,指定父物件
4、訊號和槽
1 >. 格式:connect(訊號發出者物件(指標), &className::clicked, 訊號接收者物件(指標), &classB::slot);
2 >. 標準訊號槽的使用:選中物件按F1,檢視Signals
3 >. 自定義槽函式:
a. 返回值是void;
b. 可以過載;
c. 需要跟訊號對應, 個數少於等於訊號的引數;
4 >. 自定義訊號:
a. 返回值是void;
b. 可以過載;
c. 需要使用一個關鍵字宣告: signals: (傳送訊號: emit + 訊號名;)
d. 不需要函式定義
5 >. 帶引數的訊號(槽):
1. 過載的時候: 訊號槽發生了過載, 需要使用函式指標(需要加作用域)
2. qt4訊號槽的使用:兩個巨集 SIGNAL(訊號的函式名(int, long)) SLOT(槽函式名(int, long)) 缺點:不能做錯誤檢查,槽函式名稱有誤也不會報錯
connect連結 過載過的訊號和槽的解決方法
6 >. Qt4訊號槽的連結方法:Qt4的槽函式必須使用public/protected/private slots:即,使用自定義槽函式時,需要在前面加上 public solts:
7 >. 拓展:
a、訊號可以連線訊號; (連線方式跟連線槽函式方式一樣,就是把槽函式替換成訊號就行,但是要注意一點,後面的訊號引數需要跟前面對應)
b、一個訊號可以連線多個槽函式(連線多個槽函式時,連線是有順序的,但是執行時是隨機的)
c、多個訊號可連線同一個槽函式
d、槽函式可以使用lambda表示式
5、lambda 表示式 *****
[=](引數)
{
函式實現
}
用前需要在.pro檔案中新增一次 CONFIG += c++11
6、QMainWindow
1 >. 選單欄
2 >. 工具欄
3 >. 浮動視窗和核心部件
4 >. 狀態列
7、QDialog
1 >. 模態對話方塊
2 >. 非模態對話方塊
3 >. 標準對話方塊和檔案對話方塊