QT是什么?
Qt 是一套應(yīng)用程序開發(fā)類庫(kù),但與 MFC 不同,Qt 是跨平臺(tái)的開發(fā)類庫(kù)。Qt 支持 PC 和服務(wù)器的平臺(tái),包括 Windows、Linux、macOS 等,還支持移動(dòng)和嵌入式操作系統(tǒng),如 iOS、Embedded Linux、Android、WinRT 等??缙脚_(tái)意味著只需編寫一次程序,在不同平臺(tái)上無(wú)需改動(dòng)或只需少許改動(dòng)后再編譯,就可以形成在不同平臺(tái)上運(yùn)行的版本。這種跨平臺(tái)功能為開發(fā)者提供了極大的便利。
QT界面的建立原理
1. 在函數(shù)中setupUI,建立槽的連接;
2. 新建UI過(guò)程
(1) 每一個(gè)控件都是一個(gè)獨(dú)立的類對(duì)象;
(2) 獨(dú)立的控件都是window窗口,設(shè)置parent = 0:
(3) 當(dāng)parent的值為其他控件的地址,則為子控件;
(4) 子控件不需要單獨(dú)顯示show函數(shù),如果父控件顯示,子控件自動(dòng)顯示;
(5) Resize()大小調(diào)整
(6) Move()移動(dòng)位置
(7) Setfront()設(shè)置字體;
(8) Setwindowicon()設(shè)置圖標(biāo);在此之前需要先定義qicon i(路徑名稱)
3. 理解main函數(shù)中的return a.exec():主運(yùn)行循環(huán)
(1) 防止主程序結(jié)束,重新開始循環(huán)執(zhí)行主程序;
(2) 開啟事件隊(duì)列,并且進(jìn)行事件分發(fā);
4. 幫助手冊(cè)解讀
(1) 在類的屬性中,獲取屬性函數(shù)
① 如果屬性是Bool類型,則獲取該屬性的函數(shù)名是前面加上is,部分直接以屬性名字命名;
② 如果屬性不是Bool類型,則該屬性函數(shù)名的獲取名即為屬性名本身;
(2)設(shè)置屬性加上為set;
5. Widget表示空白窗口,window表示有標(biāo)題欄的窗口,dialog表示對(duì)話框;
6. 函數(shù)的自動(dòng)調(diào)用機(jī)制
(1) 當(dāng)操作系統(tǒng)接收到一種信號(hào)后,如果QT程序正在運(yùn)行狀態(tài),則QT會(huì)接收到這個(gè)信號(hào),并且自動(dòng)調(diào)用控件類中已經(jīng)定義好的函數(shù),
7. eventFilter函數(shù)
(1) 定義eventFilter函數(shù)(2) 給控件安裝eventFilter函數(shù)安裝;
8. 事件的傳遞性
(1) 某一種控件除了在某一個(gè)控件上發(fā)生外,還會(huì)傳遞給父控件;
(2) Eventfileter函數(shù)如果返回true,則不會(huì)傳遞,默認(rèn)return false;
(3) Event->accept()作用相當(dāng)于返回false,適用于所有event;(4) Event->ignal作用相當(dāng)于返回true;
9. 實(shí)現(xiàn)多個(gè)控件的事件觸發(fā)
(1) 在定義中用qApp來(lái)指定所有的控件;
(2) 用notify實(shí)現(xiàn)事件的分發(fā),如果需要重新定義notify函數(shù),需要在notify'中returned父類的函數(shù);
10. Postevent函數(shù)實(shí)現(xiàn)異步事件處理
11. ui中固定界面的大小方法
(1) 直接將maxsize和minsize設(shè)置成一致;
(2) 在構(gòu)造函數(shù)中,使用setfixsize( this->width, this->height)來(lái)固定大小;