版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
qt學習筆記(初識)流行辯才增原狀接著拉原前后左右磁矩搓拓qt學習筆記(初識)查看redhat自帶qt庫路徑:/usr/lib/qt-3.1,查看目錄qt3-1下是否有13個文件,若沒有,則需要安裝。主菜單-系統(tǒng)設(shè)置-添加程序-選中kde軟件開發(fā)-更新。在linux下做一個五子棋的小游戲。在/home/下創(chuàng)建目錄qt,編寫一個小程序hello.cpp的c++文件。下面介紹hello.cpp源程序:#include<qapplication.h>#include<qwidget.h>//窗口類的頭文件#include<qpushbutton.h>//按鍵類的頭文件intmain(intargc,char**argv){qapplicationa(argc,argv);qwidgetmainwindow;//定義主窗口對象mainwindow.setminimumsize(20,10);//設(shè)置最小尺寸mainwindow.setmaximumsize(200,100);//設(shè)置最大尺寸qpushbuttonhelloworld(helloworld!,&mainwindow);//調(diào)用了//qpushbutton的第二個構(gòu)造函數(shù),//指定副部件為mainwindowhelloworld.setgeometry(20,20,160,60);//此函數(shù)是由其父類繼承來的setmainwidget(&mainwindow);//設(shè)置mainwindow為主部件mainwindow.show();//顯示窗口returna.exec();//存在一個while循環(huán),等待用戶發(fā)命令}窗口(類)qwidget按鈕(類)qpushbutton特性可關(guān)閉可點擊共性可設(shè)大小可設(shè)大小兩個類是從可視類派生來的,例如函數(shù)setgeometry是設(shè)置幾何尺寸的,窗口和按鈕兩類都可調(diào)用,設(shè)置尺寸大小函數(shù)也是由其父類繼承來的,兩類都可以用。經(jīng)編譯:g++hello.cpp-ohello-lqt,編譯器會報錯,未發(fā)現(xiàn)所用到的頭文件。分析錯誤原因:提示中說未找到程序中所用到的頭文件,當編譯程序時,編譯器首先到特定目錄下尋找原文件的頭文件和函數(shù)庫:頭文件目錄:/usr/include庫文件目錄:/lib/,/usr/lib/但qt庫存放在目錄/usr/lib/qt-3.1下,此文件里有三個重要的目錄:/bin/;/lib/;/include/./bin里存放的是qt庫的使用手冊;/lib下存放的是庫文件,即由原庫文件生成目標文件*.o;/include下存放的是各庫文件的聲明。因此,在編譯時,編譯器找不到正確的文件,所以必須對環(huán)境變量做修改。方法一:敲入命令,這樣可以暫時修改環(huán)境變量,設(shè)定其查找路徑,但并不能保存修改,在下一次開機后,需要重新設(shè)置。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以上兩種方法等價。再次編譯后仍舊有錯,找不到庫文件。指定庫路徑: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是連接qt庫的參數(shù)語句,-lqt等價于-libqt.so,它是一個動態(tài)庫,它包含了眾多庫文件,鏈接時只會把所需庫文件鏈接進來,這樣就不會使最終生成的文件過大。知識點:gcc-i+頭文件路徑l+庫文件路徑l+鏈接庫方法二:將環(huán)境變量添加到/etc/profile/內(nèi),它是一個類似腳本的文件,每次開機都會執(zhí)行里面的語句,即系統(tǒng)在開機時自動執(zhí)行改變路徑的命令,來修改環(huán)境變量。添加內(nèi)容:cplus_include_path=/usr/lib/qt-3.1/includelibrary_path=/usr/lib/qt-3.1/libexportcplus_include_pathlibrary_path編譯c++常用命令:(源文件hello.cpp)#qmake-v可查看qt版本#qmake-project產(chǎn)生一個工程文件#qmake產(chǎn)生makefile文件makefile#make生成目標文件和可執(zhí)行文件hello.o、qt。生成的makefile缺少句子:libs:缺少-lqt,可手工加上。qt學習筆記(qt3庫)上2009-05-2111:21//***********************************************************3.1創(chuàng)建第一個主部件創(chuàng)建主部件的方法是基于qwidget或qdialog類創(chuàng)建一個用戶類??梢允褂糜脩纛愅ㄟ^公有繼承派生于qwidget類,在其中調(diào)用一些成員函數(shù)來定義窗口外觀。題目要求:創(chuàng)建一個空的窗口,并顯示在屏幕上。大小為200*120.窗口大小不可調(diào)整。源程序:3-1.cpp#include<qapplication.h>#include<qwidget.h>#include<qpushbutton.h>#include<qlabel.h>//在類的聲明里,我們只//需要包含新的成員。其它的//方法都從qwidget類中繼承來:classmymainwindow:publicqwidget{qpushbutton*b;qlabel*l;public:析錯誤原因:提示中說未找到程序中所用到的頭文件,當編譯程序時,編譯器首先到特定目錄下尋找原文件的頭文件和函數(shù)庫:頭文件目錄:/usr/include庫文件目錄:/lib/,/usr/lib/但qt庫存放在目錄/usr/lib/qt-3.1下,此文件里有三個重要的目錄:/bin/;/lib/;/include/./bin里存放的是qt庫的使用手冊;/lib下存放的是庫文件,即由原庫文件生成目標文件*.o;/include下存放的是各庫文件的聲明。因此,在編譯時,編譯器找不到正確的文件,所以必須對環(huán)境變量做修改。方法一:敲入命令,這樣可以暫時修改環(huán)境變量,設(shè)定其查找路徑,但并不能保存修改,在下一次開機后,需要重新設(shè)置。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以上兩種方法等價。再次編譯后仍舊有錯,找不到庫文件。指定庫路徑: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是連接qt庫的參數(shù)語句,-lqt等價于-libqt.so,它是一個動態(tài)庫,它包含了眾多庫文件,鏈接時只會把所需庫文件鏈接進來,這樣就不會使最終生成的文件過大。知識點:gcc-i+頭文件路徑l+庫文件路徑l+鏈接庫方法二:將環(huán)境變量添加到/etc/profile/內(nèi),它是一個類似腳本的文件,每次開機都會執(zhí)行里面的語句,即系統(tǒng)在開機時自動執(zhí)行改變路徑的命令,來修改環(huán)境變量。添加內(nèi)容:cplus_include_path=/usr/lib/qt-3.1/includelibrary_path=/usr/lib/qt-3.1/libexportcplus_include_pathlibrary_path編譯c++常用命令:(源文件hello.cpp)#qmake-v可查看qt版本#qmake-project產(chǎn)生一個工程文件#qmake產(chǎn)生makefile文件makefile#make生成目標文件和可執(zhí)行文件hello.o、qt。生成的makefile缺少句子:libs:缺少-lqt,可手工加上。qt學習筆記(qt3庫)上2009-05-2111:21//***********************************************************3.1創(chuàng)建第一個主部件創(chuàng)建主部件的方法是基于qwidget或qdialog類創(chuàng)建一個用戶類??梢允褂糜脩纛愅ㄟ^公有繼承派生于qwidget類,在其中調(diào)用一些成員函數(shù)來定義窗口外觀。題目要求:創(chuàng)建一個空的窗口,并顯示在屏幕上。大小為200*120.窗口大小不可調(diào)整。源程序:3-1.cpp#include<qapplication.h>#include<qwidget.h>#include<qpushbutton.h>#include<qlabel.h>//在類的聲明里,我們只//需要包含新的成員。其它的//方法都從qwidget類中繼承來:classmymainwindow:publicqwidget{qpushbutton*b;qlabel*l;public:mymainwindow();};mymainwindow::mymainwindow(){//設(shè)置窗口的最大、最小尺寸//我們不需要添加this指針,//因為c++默認是現(xiàn)在的類setminimumsize(400,300);setmaximumsize(400,300);b=newqpushbutton(helloworld!,this);b->setgeometry(20,20,160,80);l=newqlabel(label,this);l->setgeometry(100,90,160,93);}intmain(intargc,char**argv){//創(chuàng)建要求的應(yīng)用類對象aqapplicationa(argc,argv);//創(chuàng)建mymainwindow類的對象,//并設(shè)置其為主視圖mymainwindoww;setmainwidget(&w);//顯示主窗口對象,并且//它的子視圖也會顯示到屏幕w.show();//等待用戶命令exec();}//**************************************************************qt庫與用戶的交互方式,例如按鈕、滑塊,是通過使用信號和槽。信號和槽是相互關(guān)聯(lián)的函數(shù)題目要求:添加退出按鈕3-5.cpp#include<qapplication.h>#include<qwidget.h>#include<qpushbutton.h>#include<qlabel.h>//在類的聲明里,我們只//需要一個新的構(gòu)造函數(shù)。//其它的成員都是從類qwidget中繼承來的:classmymainwindow:publicqwidget{qpushbutton*b;qlabel*l;public:mymainwindow();};mymainwindow::mymainwindow(){setgeometry(100,100,200,170);//setminimumsize(400,300);//setmaximumsize(400,300);b=newqpushbutton(quit!,this);b->setgeometry(20,20,160,80);b->setfont(qfont(times,18,qfont::bold));l=newqlabel(this);l->setgeometry(10,110,180,50);l->settext(ifyouclickthebuttonabove,\nthewholeprogramwillexit);l->setalignment(aligncenter);//這里按鈕b的clicked()信號與qapp的槽quit()鏈接,當點擊按鈕時,將產(chǎn)生qpushbutton::clicked()信號,導致qapp的quit()槽被執(zhí)行,從而程序退出。那么,什么是qapp呢?qapp是qt的一個內(nèi)置指針。它總是指向程序中的qapplication對象(這里指a)。//connect(b,signal(clicked()),qapp,slot(quit()));}intmain(intargc,char**argv){qapplicationa(argc,argv);mymainwindoww;setmainwidget(&w);w.show();returna.exec();}//**************************************************************信號和槽的使用題目要求:利用滑塊來改變lcd顯示的值4-1.cpp#include<qapplication.h>#include<qwidget.h>#include<qpushbutton.h>#include<qfont.h>#include<qlcdnumber.h>#include<qslider.h>//在類的聲明里,我們只//需要一個新的構(gòu)造函數(shù)。//其它的成員都是從類qwidget中繼承來的:classmymainwindow:publicqwidget{qpushbutton*b;qlcdnumber*lcd;qslider*slider;public:篇三:qt學習之路2qt學習之路2(1):序51cto上面曾經(jīng)有過這么一個系列,具體是qt的入門教程。當時強調(diào)過,那些文章大致是根據(jù)《c++guiprogrammingwithqt4,2ndediton》編寫的。時過境遷,現(xiàn)在回頭看看,已經(jīng)過去了整整三年。如果你仔細看下那篇系列文章就會發(fā)現(xiàn),發(fā)表時間竟然是2009年8月20日;而今天是2012年8月20日?;蛘呤勤ぺぶ械母杏X,竟然選擇了同一個時間?,F(xiàn)在,按照年前做過的計劃,我會來履行我的承諾,重新修訂《qt學習之路》。不過,豆子計劃將其取名為《qt學習之路2》,或者就當作是2.0版本吧!從網(wǎng)上的反應(yīng)來看,這個系列的文章獲得了很多讀者的認可。時間已經(jīng)過去三年,qt的發(fā)展也有了翻天覆地的變化。如果不受出售事件的影響,qt5即將在2012年9月發(fā)布。而現(xiàn)在,最新代碼庫里面已經(jīng)有了beta。這意味著,qt5的特性已經(jīng)確定,不會再有大的改變。所以,我覺得,我已經(jīng)可以著手進行一次修訂。本次修訂的原則是,結(jié)構(gòu)上大致保持前一版本的順序不變,包括基本知識的介紹、常用gui組件的介紹、常用技術(shù)的介紹等;內(nèi)容上將結(jié)合qt4與qt5兩個部分。在可以預見的未來,qt4的程序,無論從舊代碼的維護,還是新的程序的出現(xiàn),都不會立刻退出歷史舞臺。qt5也并不像qt4與qt3的升級那樣的激烈,因此,我覺得有必要同時介紹這兩個版本。當然,我并不確定這種―同時‖會不會一直持續(xù)到系列的最末,因為也有可能qt5以一種摧枯拉朽之勢,將qt4掃出歷史舞臺。這一切尚未可知。鑒于此,豆子才不將本系列命名為《qt5學習之路》,而是以第二版稱呼。另外,對于上一版本,豆子還是很內(nèi)疚的。因為并不是一個完整的介紹,qt的很多優(yōu)秀特性,比如xml,比如數(shù)據(jù)庫,比如網(wǎng)絡(luò),都沒有進行介紹。這主要是因為當時接觸qt也并不是很多,很多特性沒有使用過,即便抄書寫出來,也會覺得心里沒底?,F(xiàn)在豆子對qt了解更多,所以,在這次修訂中,豆子將竭盡全力將一些用到的特性介紹一下。至于本系列的定位,豆子主張將其定位于入門教程。不過,如果可能的話,豆子希望能夠在其中穿插一些有關(guān)qt實現(xiàn)的相關(guān)內(nèi)容。這部分內(nèi)容肯定不會是基礎(chǔ)的,比如信號槽的實現(xiàn)等。不過,對于這一點豆子也不敢肯定,畢竟要接觸到實現(xiàn)層面上的東西,總要花費一定時間和精力的。這次修訂,沒有了《c++guiprogrammingwithqt4》這本書作為提綱,一切都將按照自己的思路來。豆子將盡量跟隨這本書的順序,同時希望能夠按照qt5的思路,按照模塊來介紹qt。當然,作為修訂版,本次修訂的著重點在于qt5,qt4的內(nèi)容將追隨qt5進行介紹。同前文一樣,本系列也會參考《c++guiprogrammingwithqt4》一書,不過鑒于本書的某些自認為不合適的組織(比如以一個過大的項目作為示例),本版更多會直接參考qt文檔。很多原理性內(nèi)容,可能會直接來源于文檔,所以,感興趣的朋友建議直接翻閱文檔,以文檔原文為準。說了這么多,總之就是,盡量完成一篇相對高質(zhì)量的教程。如果有任何建議或者意見,歡迎給豆子留言。以此,是為序。qt學習之路2(2):qt簡介作者:豆子日期:2012年08月21日發(fā)表評論(21)查看評論qt是一個著名的c++應(yīng)用程序框架。你并不能說它只是一個gui庫,因為qt十分龐大,并不僅僅是gui組件。使用qt,在一定程度上你獲得的是一個―一站式‖的解決方案:不再需要研究stl,不再需要c++的<string>,不再需要到處去找解析xml、連接數(shù)據(jù)庫、訪問網(wǎng)絡(luò)的各種第三方庫,因為qt自己內(nèi)置了這些技術(shù)。qt是一個跨平臺的框架??缙脚_gui通常有三種實現(xiàn)策略:api映射:api映射是說,界面庫使用同一套api,將其映射到不同的底層平臺上面。大體相當于將不同平臺的api提取公共部分。比如說,將windows平臺上的按鈕控件和macos上的按鈕組件都取名為button。當你使用button時,如果在windows平臺上,則編譯成按鈕控件;如果在macos上,則編譯成按鈕組件。這么做的好處是,所有組件都是原始平臺自有的,外觀和原生平臺一致;缺點是,編寫庫代碼的時候需要大量工作用于適配不同平臺,并且,只能提取相同部分的api。比如macos的文本框自帶拼寫檢測,但是windows上面沒有,則不能提供該功能。這種策略的典型代表是wxwidgets。這也是一個標準的c++庫,和qt一樣龐大。它的語法看上去和mfc類似,有大量的宏。據(jù)說,一個mfc程序員可以很容易的轉(zhuǎn)換到wxwidgets上面來。api模擬:前面提到,api映射會―缺失‖不同平臺的特定功能,而api模擬則是解決這一問題。不同平臺的有差異api,將使用工具庫自己的代碼用于模擬出來。按照前面的例子,macos上的文本框有拼寫檢測,但是windows的沒有。那么,工具庫自己提供一個拼寫檢測算法,讓windows的文本框也有相同的功能。api模擬的典型代表是wine--一個linux上面的windows模擬器。它將大部分win32api在linux上面模擬了出來,讓linux可以通過wine運行windows程序。由此可以看出,api模擬最大優(yōu)點是,應(yīng)用程序無需重新編譯,即可運行到特定平臺上。另外一個例子是微軟提供的directx,這個開發(fā)庫將屏蔽掉不同顯卡硬件所提供的具體功能。使用這個庫,你無需擔心硬件之間的差異,如果有的顯卡沒有提供該種功能,sdk會使用軟件的方式加以實現(xiàn)。(關(guān)于舉例,可以參考文末一段精彩的討論。)gui模擬:任何平臺都提供了圖形繪制函數(shù),例如畫點、畫線、畫面等。有些工具庫利用這些基本函數(shù),在不同繪制出自己的組件,這就是gui模擬。gui模擬的工作量無疑是很大的,因為需要使用最基本的繪圖函數(shù)將所有組件畫出來;并且這種繪制很難保證和原生組件一模一樣。但是,這一代價帶來的優(yōu)勢是,可以很方便的修改組件的外觀--只要修改組件繪制函數(shù)即可。很多跨平臺的gui庫都是使用的這種策略,例如gtk+(這是一個c語言的圖形界面庫。使用c語言很優(yōu)雅地實現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計。不過,這也同樣帶來了一個問題--使用大量的類型轉(zhuǎn)換的宏來模擬多態(tài),并且它的函數(shù)名一般都比較長,使用下劃線分割單詞,看上去和linux如出一轍。gtk+并不是模擬的原生界面,而有它自己的風格,所以有時候就會和操作系統(tǒng)的界面格格不入。),swing以及我們的qt。qt和wxwidgets一樣,也是一個標準的c++庫。但是它的語法類似于java的swing,十分清晰,而且使用信號槽(signal/slot)機制,讓程序看起來很明白--這也是很多人優(yōu)先選擇qt的一個很重要的原因。不過,所謂―成也蕭何,敗也蕭何‖。這種機制雖然很清楚,但是它所帶來的后果是你需要使用qt的qmake對程序進行預處理,才能夠再使用make或者nmake進行正常的編譯,并且信號槽的調(diào)用要比普通的函數(shù)調(diào)用慢大約一個數(shù)量級(qt4文檔中說明該數(shù)據(jù),但qt5尚未有官方說明)。qt的界面也不是原生風格的,盡管qt使用style機制十分巧妙地模擬了原生界面。另外值得一提的是,qt不僅僅能夠運行在桌面環(huán)境中,還可以運行在嵌入式平臺以及手機平臺。qt第一版于1991年由trolltech(奇趣科技)發(fā)布。后來在2008年,nokia斥資1.5億美元收購trolltech,將qt應(yīng)用于symbian程序開發(fā)。2012年8月9日,nokia將qt以400萬歐元的價格出售給digia。伴隨著qt,一直有兩種授權(quán)協(xié)議:商業(yè)授權(quán)以及開源授權(quán)。在qt的早期版本,商業(yè)授權(quán)包含一些開源授權(quán)不提供的組件,但是在近期版本則不存在這個問題。以往人們對qt的開源授權(quán)多有詬病。早期版本的qt使用與gpl不兼容的協(xié)議授權(quán),這直接導致了kde與gnome的戰(zhàn)爭(由于linux使用gpl協(xié)議發(fā)布,gpl協(xié)議具有傳染性,作為linux桌面環(huán)境的kde卻是基于與gpl不兼容的qt開發(fā),這就不遵守gpl協(xié)議)。不過,現(xiàn)在qt的開源版本使用的是gplv3以及l(fā)gpl協(xié)議。這意味著,你可以將qt作為一個庫連接到一個閉源軟件里面??梢哉f,qt協(xié)議的爭議已經(jīng)不存在了。devbeansworldcolorfultechnologies...qt學習之路2(3):hello,world!作者:豆子日期:2012年08月22日發(fā)表評論(37)查看評論想要學習qt開發(fā),首先要搭建qt開發(fā)環(huán)境。好在現(xiàn)在搭建qt開發(fā)環(huán)境還是比較簡單的。我們可以到qt官方網(wǎng)站找到最新版本的qt。在downloads頁面,可以看到有幾個版本的qt:qtsdk、qtlibrary、qtcreator等等。它們分別是:?qtsdk:包含了qt庫以及qt的開發(fā)工具(ide、i18n等工具),是一套完整的開發(fā)環(huán)境。當然,這個的體積也是最大的(windows平臺大約1.7g,其它平臺大約780m)。如果僅僅為開發(fā)qt,建議選擇這一項下載安裝。安裝方法很簡單,同普通程序沒有什么區(qū)別。所需注意的是,安裝過程中可能能夠提供選擇是否安裝源代碼,是否安裝mingw編譯器(windows),這個就按照需要進行選擇即可。另外值得說明的是,qtsdk通常比單獨的qt庫版本要舊一些。比如現(xiàn)在qt正式版是4.8.2,但是qtsdk的最新版1.2.1中包含的qt是4.8.1。?qtlibrary:僅包含qt庫。如果您已經(jīng)安裝了qt開發(fā)環(huán)境,為了升級一下sdk中提供的qt庫版本,就可以安裝這一個。安裝過之后,應(yīng)該需要在ide中配置安裝路徑,以便找到最新版本的qt(如果不是覆蓋安裝的話)。?qtcreator:基于qt構(gòu)建的一個輕量級ide,現(xiàn)在最新版是2.5.2,還是比較好用的,建議使用qtcreator進行開發(fā)。當然,如果你已經(jīng)習慣了vs2010這樣的工具,可以在頁面最下方找到相應(yīng)的addin。很多朋友希望閱讀qt代碼以提高自己的開發(fā)水平。當然,qt的經(jīng)典代碼是kde,不過這個項目不大適合初學者閱讀。此時,我們就可以選擇閱讀qtcreator的代碼,它的代碼還是比較清晰的。當我們安裝完成qt開發(fā)環(huán)境之后,就可以使用qtcreator進行開發(fā)。在本系列中,豆子會一直使用這個ide進行講解。至于編譯器,豆子一般會使用mingw或者gcc。為了編譯qt5的程序,你應(yīng)該使用gcc4.5以上的版本,這意味著,如果你是使用qtsdk自帶的mingw,是不能編譯qt5的程序的(因為這個自帶的版本是4.4),你應(yīng)該升級mingw為4.5以上版本。至此,我們已經(jīng)有了qt4的完整開發(fā)環(huán)境。如果你想要開發(fā)qt5,由于現(xiàn)在(2012年8月)qt5還處于測試階段,并沒有提供二進制庫,所以我們需要使用git自己獲取qt5的源代碼自己編譯(一般需要幾個小時時間)。豆子非常不建議在windows上編譯qt5,因為可能會出很多問題。如果你想嘗試,可以參考這里。豆子提一句,在windows上編譯qt5,需要安裝perl(并且要安裝getopt::long模塊)、python和git,并且需要找到彼此路徑。相比而言,linux上面就會簡單很多。豆子建議,如果你想在windows上嘗試qt5,可以考慮安裝一個虛擬機,使用linux平臺;或者自己試著直接在windows本地編譯。豆子的環(huán)境是使用opensuse。opensuse的qt5.0developmentsnapshots已經(jīng)提供了qt5二進制版本,免去了編譯的過程?;诖?,本文的qt4版本將在windows平臺上使用mingw進行測試;qt5版本將在opensuse上使用gcc4.6進行測試。在未來官方推出qt5windows平臺的二進制版本,也不排除在windows上面測試qt5代碼。在qtcreator中,我們可以在菜單欄的工具-選項-構(gòu)建和運行的―qt版本‖和―工具鏈‖這兩個選項卡中配置qtcreator所使用的qt版本和編譯器。這或許是最重要的步驟,包括添加新的qt版本以及以后的切換編譯器或者qt升級等。下面嘗試開發(fā)第一個qt項目:helloworld。在qtcreator中新建一個工程:點擊這個―新建文件或工程‖,在左側(cè)選擇項目-applications,中間選擇qtgui應(yīng)用,然后點擊―選擇...‖:在彈出的對話框中填寫名稱、創(chuàng)建路徑等信息:篇四:qt學習筆記1、窗體是指組合在一起創(chuàng)建用戶界面的可視元素。按鈕、菜單、滾動條、消息框以及應(yīng)用程序窗口都是窗體的例子。qt的窗體并沒有在"控件"或"容器"之間加以截然區(qū)分。所有窗體既可以作為控件使用、又可以作為容器使用。通過從現(xiàn)有qt窗體派生子類或者從頭開始新建窗體(如有必要),則可輕松創(chuàng)建自定義的窗體。2、窗體可以包含任意數(shù)量的子窗體。子窗體位于父窗體區(qū)域內(nèi)。不含父窗體的則稱為頂層窗體("窗口"),這類窗體通常在桌面環(huán)境的任務(wù)欄中有自己的啟動入口。3、您可輕松使用手動方式編寫用戶界面??梢允褂靡韵麓a來創(chuàng)建"findtext"對話框的選項組框。qgroupbox*optionsgroupbox=newqgroupbox(tr(options));qcheckbox*casecheckbox=newqcheckbox(tr(c&asesensitive));qcheckbox*directcheckbox=newqcheckbox(tr(searchfo&rwards));qcheckbox*wordscheckbox=newqcheckbox(tr(whole&words));qcheckbox*startcheckbox=newqcheckbox(tr(from&startoftext));qgridlayout*optionslayout=newqgridlayout;optionslayout->addwidget(casecheckbox,0,0);optionslayout->addwidget(wordscheckbox,0,1);optionslayout->addwidget(directcheckbox,1,0);optionslayout->addwidget(startcheckbox,1,1);optionsgroupbox->setlayout(optionslayout);4、在執(zhí)行qt應(yīng)用程序的過程中,可以隨時添加或移除連接??蓪⑦B接設(shè)置為在發(fā)出信號時執(zhí)行,或者排隊稍后執(zhí)行,可以在不同的線程的對象之間建立連接。5、gui應(yīng)用程序經(jīng)常使用多個線程:一個線程保持用戶界面的響應(yīng),其他線程則執(zhí)行耗時冗長的活動,例如:讀取大型文件并執(zhí)行復雜的計算。您可以配置qt來支持多線程,并提供類來表示線程、互斥鎖、信號燈、線程全局存儲,另外還提供支持不同鎖定機制的類。許多qt類都可重入,且qt提供的許多功能是線程安全的。6、菜單是一系列命令的列表,為了實現(xiàn)菜單,工具欄按鈕,鍵盤快捷方式等命令的一致性,qt使用動作(action)來表示這些命令。qt的菜單就是由一系列的qaction動作對象構(gòu)成的列表。篇五:qt學習筆記qt學習筆記1、信號:一個特定的標識,當內(nèi)部發(fā)生某些事件或狀態(tài)改變時能夠被"發(fā)射"如:emitsingal();槽:槽和普通的c++類的成員函數(shù)幾乎是一樣的,唯一不同的是:槽可以和信號連接在一起,當發(fā)射這個信號的時候,就會自動調(diào)用這個槽。作用:對象之間通信的高級接口。信號和槽的連接基本語句:qobject::connect(sender,signal(a_signal(int)),recviver,slot(b_slot(int)),qt::connectiontype)qobject::connect(sender_a,signal(a_signal(int)),sender_b,signal(b_signal(int)))其中:qt::connectiontype定義了關(guān)聯(lián)方式:qt::directconnectionqt::queue
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國電影行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國全地形車行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 新形勢下文化創(chuàng)意設(shè)計服務(wù)行業(yè)高速增長戰(zhàn)略制定與實施研究報告
- 2025-2030年中國存儲芯片行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 重癥護理學??谱o士培訓基地建設(shè)標準
- 建造師幕墻知識培訓課件
- 項目管理十大知識領(lǐng)域培訓課件
- 2020-2025年中國基因藥物行業(yè)市場調(diào)研分析及投資戰(zhàn)略規(guī)劃報告
- 2024年壓電陶瓷行業(yè)市場環(huán)境分析
- 2024年環(huán)境監(jiān)測系統(tǒng)市場需求分析
- 2025版工業(yè)制造工程墊資建設(shè)合同2篇
- 2025南方財經(jīng)全媒體集團校園招聘63人高頻重點提升(共500題)附帶答案詳解
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導材料之4:4組織環(huán)境-4.2理解相關(guān)方的需求和期望(雷澤佳編制-2025B0)
- 2024年一級支行行長競聘演講稿例文(4篇)
- 健身房銷售人員培訓
- 菌種保存管理
- 四年級數(shù)學(上)計算題專項練習及答案
- 廣東省廣州市2022-2023學年高二上學期期末考試化學試題
- 人教版-六年級上數(shù)學-扇形統(tǒng)計圖單元測試(含答案)
- 2023年題工會基礎(chǔ)知識試題及答案
- 光伏運營維護管理方案
評論
0/150
提交評論