|
在淘寶上買(mǎi)的三本書(shū),今天到了第一本c++ gui qt4編程,之前一直上網(wǎng)查資料,發(fā)現(xiàn)他們安裝qt開(kāi)發(fā)環(huán)境異常,而我發(fā)現(xiàn)我當(dāng)時(shí)我安裝的是是一路傻瓜式的下一步。最終我得到的答案是,qt安裝的時(shí)候應(yīng)該下載opensource offline版本,而不是online版本。qt發(fā)行版本分為enterprises的商業(yè)版,和opensource的gpl版本。商業(yè)版是要聯(lián)系dgtal(單詞好像打錯(cuò)了,忘了)公司通過(guò)授權(quán)的,正確是要安裝開(kāi)源版。
我拿到書(shū)的第一件事情就是把我筆記本里面win7,fedora,ubuntu的qt enterprises 5.2全卸載,因?yàn)闀r(shí)間有限,我只打算在win7下先安裝。我把qt project里面所有的linux x86,linux x64,window x86,window x64的版本都下載了下來(lái)。最終我選擇安裝了qt mingw 4.8的版本,安裝的時(shí)候出現(xiàn)了要查找mingw gcc編譯器所在的安裝目錄 。度娘說(shuō)先安裝qt creator里面就會(huì)有mingw目錄,我照做但是沒(méi)有,可能他們的版本比較老。最后我直接下載安裝了一個(gè)mingw。
安裝完畢以后,新建任何工程編譯都通不過(guò),書(shū)上沒(méi)有提到mingw安裝,查看環(huán)境變量發(fā)現(xiàn)mingw的目錄是錯(cuò)的,修改后,就全部正確了。qt下利用qt creator,點(diǎn)點(diǎn)控件,稍微寫(xiě)點(diǎn)代碼就可以實(shí)現(xiàn)一個(gè)不錯(cuò)的界面。我開(kāi)始的時(shí)候也以為這樣就夠了。后來(lái)我接觸了java,我看java開(kāi)發(fā)教程的時(shí)候,看到里面這樣一句話(huà)“利用高級(jí)集成開(kāi)發(fā)環(huán)境,點(diǎn)點(diǎn)畫(huà)畫(huà),就可以自動(dòng)的生成代碼,但不建議初學(xué)者使用,因?yàn)椴焕脤W(xué)習(xí)。初學(xué)者應(yīng)該直接在文本下輸入代碼,直接用命令行編譯運(yùn)行” 。多寫(xiě)代碼才有利于入門(mén)。
我實(shí)驗(yàn)的第一個(gè)程序qt_hello:
書(shū)寫(xiě)qt_hello.cpp文件:
#include<QApplication>
#include<QLabel>int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label=new QLabel("Hello Qt!");
label->show();
return app.exec();
}
保存:
qmake -project
qmake qt_hello.pro
make 編譯
書(shū)上沒(méi)有說(shuō)要切換到debug目錄下。
qt_hello 運(yùn)行
我實(shí)驗(yàn)的第二個(gè)程序 qt_connect:
#include<QApplication>
#include<QPushButton>
int main(int argc,char *argv[])
{QApplication app(argc,argv);
QPushButton *button=new QPushButton("Quit");
QObject::connect(button,SIGNAL(clicked()),
&app,SLOT(quit()));
button->show();
return app.exec();
}
保存;
qmake -project
qmake qt_connect,pro
make
qt_connect
最后的問(wèn)題如何發(fā)布程序的問(wèn)題,寫(xiě)了半天程序,生成exe執(zhí)行文件,一點(diǎn)缺少文件,運(yùn)行不了。看了網(wǎng)上許多關(guān)于qt程序發(fā)布的問(wèn)題,感覺(jué)很暈。我最終實(shí)驗(yàn)成功的方法是:
把qt安裝目錄下和mingw下的這幾個(gè)dll文件復(fù)制出來(lái)。
最后一步不make,寫(xiě)make release。然后把這幾個(gè)文件復(fù)制進(jìn)release文件夾里。點(diǎn)exe文件就成功了。 
繼續(xù)努力,翔哥。
|
|