QT開發入門(men)基(ji)礎及界面的建立原理
時間:2018-08-03 來(lai)源:未知
QT基礎學習=========================
第一階段
============================================================================
1. QT creater的編譯快捷鍵
(1) Qmake -project表示(shi)生成.pro文件
(2) qmake表示生(sheng)成(cheng)makefile
(3) make表示可執行程序;
2. disconnect取消所有函數中(zhong)指定信號(hao)與槽(cao)的(de)鏈接;
3. 信號與(yu)槽函數的(de)關系
(1) 參(can)數類型必須要匹配;
(2) 信(xin)號的參數可以(yi)比槽(cao)函數多,但(dan)是不能(neng)少;
(3) 使(shi)用前提:在自己(ji)的類(lei)中必(bi)須要有宏定義,Q_OBJECT
(4) 自己(ji)的類(lei)必須是Qobject類(lei)的直接(jie)或者間接(jie)的子類(lei)
(5) widget是Qobject的子類(lei),connect函數是Qobject中定義(yi),所以(yi)才能使(shi)用;
4. 編譯的過程
(1) Widget.cpp編譯生成(cheng)
(2) 函(han)數利(li)用set_up函(han)數建立自動函(han)數定義和鏈接(jie)關系;
=================================================================
第二課(ke):QT界面的建立原理(li)
=================================================================
1. 在函數中setupUI,建立槽的連接(jie);
2. 新(xin)建UI過(guo)程(cheng)
(1) 每一個(ge)控件都是(shi)一個(ge)獨(du)立的類對象;
(2) 獨立的控件(jian)都(dou)是(shi)window窗口,設置parent = 0:
(3) 當parent的值(zhi)為其他(ta)控(kong)件的地址,則為子控(kong)件;
(4) 子控件不需要單獨顯示show函(han)數,如果父(fu)控件顯示,子控件自(zi)動(dong)顯示;
(5) Resize()大小調(diao)整
(6) Move()移動位置
(7) Setfront()設(she)置(zhi)字(zi)體;
(8) Setwindowicon()設置圖標;在此之前需要先定義qicon i(路徑名稱)
3. 理解main函(han)數(shu)中的return a.exec():主運(yun)行循環
(1) 防(fang)止主程序結束,重新(xin)開(kai)始循(xun)環(huan)執(zhi)行(xing)主程序;
(2) 開啟(qi)事件隊(dui)列,并且(qie)進行事件分發;
4. 幫助手冊解(jie)讀
(1) 在類的(de)屬性中,獲取屬性函數
① 如果屬(shu)(shu)(shu)性(xing)(xing)是(shi)Bool類型,則獲取該屬(shu)(shu)(shu)性(xing)(xing)的函數名(ming)是(shi)前(qian)面加上is,部(bu)分直接(jie)以屬(shu)(shu)(shu)性(xing)(xing)名(ming)字命名(ming);
② 如果屬性(xing)不(bu)是Bool類型(xing),則該屬性(xing)函(han)數名的獲取(qu)名即為(wei)屬性(xing)名本(ben)身(shen);
(2)設置屬性加上為set;
5. Widget表示空白窗口,window表示有(you)標題欄的窗口,dialog表示對話框;
6. 函數的(de)自動調(diao)用機(ji)制
(1) 當操作系統接(jie)收(shou)到一(yi)種(zhong)信號后,如(ru)果(guo)QT程(cheng)序正在(zai)運行狀態,則QT會接(jie)收(shou)到這個信號,并且自動調用(yong)控件類中(zhong)已(yi)經定義好的函數,
7. eventFilter函(han)數
(1) 定義eventFilter函數
(2) 給控(kong)件(jian)安裝eventFilter函數安裝;
8. 事(shi)件的傳遞性
(1) 某(mou)一種控件除了在某(mou)一個控件上發生外,還(huan)會傳遞給父控件;
(2) Eventfileter函數如(ru)果返回true,則不會傳遞,默認(ren)return false;
(3) Event->accept()作用(yong)相(xiang)當于(yu)返回false,適用(yong)于(yu)所(suo)有event;
(4) Event->ignal作用(yong)相當于返回true;
9. 實現多個控件(jian)的事件(jian)觸發(fa)
(1) 在定(ding)義中用qApp來指定(ding)所有的控件;
(2) 用notify實現事(shi)件的(de)分(fen)發,如(ru)果需要重新定義notify函數(shu),需要在notify'中returned父類的(de)函數(shu);
10. Postevent函數實現(xian)異步事(shi)件處理
11. ui中固(gu)定界(jie)面(mian)的大小方法
(1) 直接將(jiang)maxsize和minsize設置成一(yi)致;
(2) 在構造(zao)函數中,使用setfixsize( this->width, this->height)來固(gu)定大小;

