版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、QtQApplication類簡(jiǎn)介一、詳細(xì)描述一、詳細(xì)描述QApplication類管理圖形用戶界面應(yīng)用程序圖形用戶界面應(yīng)用程序的控制流控制流和主要設(shè)置主要設(shè)置??梢哉fQApplication是Qt的整個(gè)后臺(tái)管理整個(gè)后臺(tái)管理的命脈它包含主事件循環(huán)主事件循環(huán),在其中來自窗口系統(tǒng)和其它資源的所有事件來自窗口系統(tǒng)和其它資源的所有事件被處理和調(diào)度。它也處理應(yīng)用程序的初始化和結(jié)束應(yīng)用程序的初始化和結(jié)束,并且提供對(duì)話管理提供對(duì)話管理。它也處理絕大多
2、數(shù)系統(tǒng)范圍和應(yīng)用程序范圍的設(shè)置系統(tǒng)范圍和應(yīng)用程序范圍的設(shè)置。對(duì)于任何一個(gè)使用任何一個(gè)使用Qt的圖形用戶界面應(yīng)用程序的圖形用戶界面應(yīng)用程序,都存在一個(gè)QApplication對(duì)象,而不論這個(gè)應(yīng)用程序在同一時(shí)間內(nèi)是不是有不論這個(gè)應(yīng)用程序在同一時(shí)間內(nèi)是不是有0、1、2或更多個(gè)或更多個(gè)窗口窗口。QApplication對(duì)象是可以通過全局變量通過全局變量qApp訪問訪問。它的負(fù)責(zé)的主要范圍有:它使用用戶的桌面設(shè)置桌面設(shè)置,例如palette()、
3、font()和doubleClickInterval()來初始化應(yīng)用程序。如果用戶改變?nèi)肿烂?,例如通過一些控制面板,它會(huì)對(duì)這些屬性保持跟蹤。它執(zhí)行事件處理事件處理,也就是說它從低下的窗口系統(tǒng)接收事件從低下的窗口系統(tǒng)接收事件并且把它們分派給相關(guān)的窗口部件分派給相關(guān)的窗口部件。通過使用sendEvent()和postEvent(),你可以發(fā)送你自己的事件到窗口部件發(fā)送你自己的事件到窗口部件。它分析命令行參數(shù)并且根據(jù)它們?cè)O(shè)置內(nèi)部狀態(tài)分析命令
4、行參數(shù)并且根據(jù)它們?cè)O(shè)置內(nèi)部狀態(tài)。關(guān)于這點(diǎn)的詳細(xì)情況請(qǐng)參考下面的構(gòu)造函數(shù)文檔。它定義了由QStyle對(duì)象封裝對(duì)象封裝的應(yīng)用程序的觀感應(yīng)用程序的觀感。在運(yùn)行狀態(tài)下,可以通過setStyle()來改變。它指定了應(yīng)用程序如何分配顏色應(yīng)用程序如何分配顏色。詳細(xì)情況請(qǐng)參考setColSpec()。它定義了默認(rèn)文本編碼默認(rèn)文本編碼(請(qǐng)參考setDefaultCodec())并且提供了通過translate()用戶可見的本地化字符串。它提供了一些像de
5、sktop()和clipboard()這樣的魔術(shù)般的對(duì)象。它知道應(yīng)用程序的窗口應(yīng)用程序的窗口。你可以使用widgetAt()來詢問在一個(gè)確定點(diǎn)上存在哪個(gè)窗口部件一個(gè)確定點(diǎn)上存在哪個(gè)窗口部件,得到一個(gè)topLevelWidgets()(頂級(jí)窗口部件)的(頂級(jí)窗口部件)的列表列表和通過closeAllWindows()來關(guān)閉所有窗口來關(guān)閉所有窗口,等等。它管理應(yīng)用程序的鼠標(biāo)光標(biāo)處理鼠標(biāo)光標(biāo)處理,請(qǐng)參考setOverrideCurs()和se
6、tGlobalMouseTracking()。在X窗口系統(tǒng)上,它提供刷新和同步通訊流的函數(shù)刷新和同步通訊流的函數(shù),請(qǐng)參考flushX()和syncX()。它提供復(fù)雜的對(duì)話管理支持對(duì)話管理支持。這使得當(dāng)用戶注銷時(shí),它可以讓應(yīng)用程序很好地結(jié)束,如果無法終止,撤消關(guān)閉進(jìn)程并且甚至為未來的對(duì)話保留整個(gè)應(yīng)用程序的狀態(tài)。詳細(xì)情況請(qǐng)參考isSessionRested()、sessionId()、commitData()和saveState()。應(yīng)用程
7、序排演實(shí)例包含了一個(gè)QApplication通常用法的典型完整的main()。因?yàn)橐驗(yàn)镼Application對(duì)象做了如此多的初始化,它必須在所有與用戶界面相關(guān)的其它類被創(chuàng)建之前被創(chuàng)建。對(duì)象做了如此多的初始化,它必須在所有與用戶界面相關(guān)的其它類被創(chuàng)建之前被創(chuàng)建。因?yàn)樗蔡幚砻钚袇?shù),在應(yīng)用程序中對(duì)因?yàn)樗蔡幚砻钚袇?shù),在應(yīng)用程序中對(duì)argv解釋和修改之前創(chuàng)建它通常是一個(gè)好主意。解釋和修改之前創(chuàng)建它通常是一個(gè)好主意。(注意,也對(duì)于X1
8、1,setMainWidget()可以根據(jù)geometry選項(xiàng)來改變主窗口部件。為了保持這個(gè)功能,你必須在setMainWidget()和它的任何重載之前設(shè)置你的默認(rèn)。)二、二、QApplication兩類構(gòu)造的講解兩類構(gòu)造的講解QApplication::QApplication(int遍歷窗口部件遍歷窗口部件QWidgetwwhile((w=it.current())!=0)對(duì)于每一個(gè)窗口部件對(duì)于每一個(gè)窗口部件……itwupdate
9、()list刪除這個(gè)列表,不是這個(gè)窗口部件刪除這個(gè)列表,不是這個(gè)窗口部件QWidgetListQApplication::topLevelWidgets()[靜態(tài)靜態(tài)]返回應(yīng)用程序中頂級(jí)窗口部件的列表頂級(jí)窗口部件的列表。這個(gè)列表是使用new創(chuàng)建的并且必須由調(diào)用者刪除。如果沒有頂級(jí)窗口部件,這個(gè)列表是空的(QPtrList::isEmpty())。注意一些頂級(jí)窗口部件也許被隱藏了,例如如果當(dāng)前沒有工具提示被顯示的工具提示。注意一些頂級(jí)窗口
10、部件也許被隱藏了,例如如果當(dāng)前沒有工具提示被顯示的工具提示。實(shí)例:顯示所有隱藏的頂級(jí)窗口部件。顯示所有隱藏的頂級(jí)窗口部件。QWidgetListlist=QApplication::topLevelWidgets()QWidgetListItit(list)遍歷窗口部件遍歷窗口部件QWidgetwwhile((w=it.current())!=0)對(duì)每一個(gè)頂級(jí)窗口部件對(duì)每一個(gè)頂級(jí)窗口部件itif(!wisVisible())wshow(
11、)list刪除這個(gè)列表,而不是窗口部件刪除這個(gè)列表,而不是窗口部件QWidgetQApplication::topLevelAt(intxinty)[static]返回最上層返回最上層xy點(diǎn)的點(diǎn)的widget可以用來定位最上層窗口可以用來定位最上層窗口QWidgetQApplication::widgetAt(intxinty)[static]返回當(dāng)前層返回當(dāng)前層xy點(diǎn)的點(diǎn)的widget可以用來定位當(dāng)前窗口可以用來定位當(dāng)前窗口,和top
12、LevelAt不同的是widgetAt是以globalscreenposition來判斷的,而topLevelAt是以顯示區(qū)域?yàn)樽鴺?biāo)區(qū)域以顯示區(qū)域?yàn)樽鴺?biāo)區(qū)域的。voidQApplication::closeAllWindows()[staticslot]關(guān)閉所有頂級(jí)窗口。關(guān)閉所有頂級(jí)窗口。exitAct=newQAction(tr(“EexitActsetShtcuts(QKeySequence::Quit)exitActsetStat
13、usTip(tr(“Exittheapplication“))connect(exitActSIGNAL(triggered())qAppSLOT(closeAllWindows()))四、關(guān)于事件循環(huán)四、關(guān)于事件循環(huán)qApplication的事件循環(huán),就是MainLoop的事件循環(huán),當(dāng)然它的原理和QEventLoop的原理是一樣的。voidQCeApplication::processEvents(QEventLoop::Proces
14、sEventsFlagsflags=QEventLoop::AllEvents)[static]Processesallpendingeventsfthecallingthreadaccdingtothespecifiedflagsuntiltherearenomeeventstoprocess.Youcancallthisfunctionoccasionallywhenyourprogramisbusyperfmingalongope
15、ration(e.g.copyingafile).IneventyouarerunningalocalloopwhichcallsthisfunctioncontinuouslywithoutaneventlooptheDeferredeventswillnotbeprocessed.Thiscanaffectthebehaviourofwidgetse.g.QToolTipthatrelyonDeferredeventstofunct
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- qt4 總體簡(jiǎn)介
- bootstrap常用類簡(jiǎn)介
- 頭孢類抗菌藥物簡(jiǎn)介
- document for qt
- 頭孢類抗菌藥物簡(jiǎn)介匯編
- c++課程設(shè)計(jì)---qt圖形界面的日期類實(shí)現(xiàn)
- abcmouse規(guī)范要求-三類課程簡(jiǎn)介
- 主頁(yè)酒店簡(jiǎn)介的語類分析.pdf
- c++ bitset類的使用及簡(jiǎn)介
- qt間期延長(zhǎng)
- qt_plugin
- 南昌大學(xué)ⅱ類通識(shí)教育課程簡(jiǎn)介
- qt動(dòng)態(tài)文件.rar
- qt動(dòng)態(tài)文件.rar
- qt動(dòng)態(tài)文件.rar
- qt動(dòng)態(tài)文件.rar
- 各版本美術(shù)類考研參考書目簡(jiǎn)介
- qt入門1《我的第一個(gè)qt程序》————高
- 6、27北理藝術(shù)類設(shè)計(jì)學(xué)專業(yè)簡(jiǎn)介
- 數(shù)控車床加工螺紋類零件方法簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論