資源描述:
《QT學(xué)習(xí)筆記-經(jīng)驗(yàn)篇.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、QT學(xué)習(xí)筆記(初識(shí))2009-05-2111:13QT學(xué)習(xí)筆記(初識(shí))查看RedHat自帶QT庫(kù)路徑:/usr/lib/qt-3.1,查看目錄qt3-1下是否有13個(gè)文件,若沒(méi)有,則需要安裝。主菜單-系統(tǒng)設(shè)置-添加程序-選中KDE軟件開(kāi)發(fā)-更新。在Linux下做一個(gè)五子棋的小游戲。在/home/下創(chuàng)建目錄qt,編寫一個(gè)小程序hello.cpp的C++文件。下面介紹hello.cpp源程序:#include#include//窗口類的頭文件#include//按鍵類的頭文件intmain(intarg
2、c,char**argv){QApplicationa(argc,argv);QWidgetmainwindow;//定義主窗口對(duì)象mainwindow.setMinimumSize(20,10);//設(shè)置最小尺寸mainwindow.setMaximumSize(200,100);//設(shè)置最大尺寸QPushButtonhelloworld("HelloWorld!",&mainwindow);//調(diào)用了//QPushButton的第二個(gè)構(gòu)造函數(shù),//指定副部件為mainwindowhelloworld.setGeometry(20,20,160,60);//此函數(shù)是由其父類繼承來(lái)
3、的a.setMainWidget(&mainwindow);//設(shè)置mainwindow為主部件mainwindow.show();//顯示窗口returna.exec();//存在一個(gè)while循環(huán),等待用戶發(fā)命令}窗口(類)QWidget按鈕(類)QPushButton特性可關(guān)閉可點(diǎn)擊共性可設(shè)大小可設(shè)大小兩個(gè)類是從可視類派生來(lái)的,例如函數(shù)setGeometry是設(shè)置幾何尺寸的,窗口和按鈕兩類都可調(diào)用,設(shè)置尺寸大小函數(shù)也是由其父類繼承來(lái)的,兩類都可以用。經(jīng)編譯:g++hello.cpp–ohello–lqt,編譯器會(huì)報(bào)錯(cuò),未發(fā)現(xiàn)所用到的頭文件。分析錯(cuò)誤原因:提示中說(shuō)未找到程序中所
4、用到的頭文件,當(dāng)編譯程序時(shí),編譯器首先到特定目錄下尋找原文件的頭文件和函數(shù)庫(kù):頭文件目錄:/usr/include庫(kù)文件目錄:/lib/,/usr/lib/但QT庫(kù)存放在目錄/usr/lib/qt-3.1下,此文件里有三個(gè)重要的目錄:/bin/;/lib/;/include/./bin里存放的是QT庫(kù)的使用手冊(cè);/lib下存放的是庫(kù)文件,即由原庫(kù)文件生成目標(biāo)文件*.o;/include下存放的是各庫(kù)文件的聲明。因此,在編譯時(shí),編譯器找不到正確的文件,所以必須對(duì)環(huán)境變量做修改。方法一:敲入命令,這樣可以暫時(shí)修改環(huán)境變量,設(shè)定其查找路徑,但并不能保存修改,在下一次開(kāi)機(jī)后,需要重新設(shè)置。
5、1)#g++hello.cpp–ohello–lqt–I/usr/lib/qt-3.1/include2)#exportCPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/include#g++hello.cpp–ohello–lqt以上兩種方法等價(jià)。再次編譯后仍舊有錯(cuò),找不到庫(kù)文件。指定庫(kù)路徑:1)#g++hello.cpp–ohello–lqt–L/usr/lib/qt-3.1/lib2)#exportLIBRARY_PATH=/usr/lib/qt-3.1/lib#g++hello.cpp–ohello–lqt最終生成可執(zhí)行文件hello。其中,-lqt是連
6、接QT庫(kù)的參數(shù)語(yǔ)句,-lqt等價(jià)于-libqt.so,它是一個(gè)動(dòng)態(tài)庫(kù),它包含了眾多庫(kù)文件,鏈接時(shí)只會(huì)把所需庫(kù)文件鏈接進(jìn)來(lái),這樣就不會(huì)使最終生成的文件過(guò)大。知識(shí)點(diǎn):gcc-I+頭文件路徑-L+庫(kù)文件路徑-l+鏈接庫(kù)方法二:將環(huán)境變量添加到/etc/profile/內(nèi),它是一個(gè)類似腳本的文件,每次開(kāi)機(jī)都會(huì)執(zhí)行里面的語(yǔ)句,即系統(tǒng)在開(kāi)機(jī)時(shí)自動(dòng)執(zhí)行改變路徑的命令,來(lái)修改環(huán)境變量。添加內(nèi)容:CPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/includeLIBRARY_PATH=/usr/lib/qt-3.1/libexportCPLUS_INCLUDE_PATHLIBRA
7、RY_PATH編譯C++常用命令:(源文件hello.cpp)#qmake–v可查看qt版本#qmake–project產(chǎn)生一個(gè)工程文件qt.pro#qmake產(chǎn)生Makefile文件Makefile#make生成目標(biāo)文件和可執(zhí)行文件hello.o、qt。生成的Makefile缺少句子:LIBS:缺少-lqt,可手工加上。Qt學(xué)習(xí)筆記(Qt3庫(kù))上2009-05-2111:21//********************************************