版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、QtQApplication類(lèi)簡(jiǎn)介一、詳細(xì)描述一、詳細(xì)描述QApplication類(lèi)管理圖形用戶(hù)界面應(yīng)用程序圖形用戶(hù)界面應(yīng)用程序的控制流控制流和主要設(shè)置主要設(shè)置??梢哉f(shuō)QApplication是Qt的整個(gè)后臺(tái)管理整個(gè)后臺(tái)管理的命脈它包含主事件循環(huán)主事件循環(huán),在其中來(lái)自窗口系統(tǒng)和其它資源的所有事件來(lái)自窗口系統(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的圖形用戶(hù)界面應(yīng)用程序的圖形用戶(hù)界面應(yīng)用程序,都存在一個(gè)QApplication對(duì)象,而不論這個(gè)應(yīng)用程序在同一時(shí)間內(nèi)是不是有不論這個(gè)應(yīng)用程序在同一時(shí)間內(nèi)是不是有0、1、2或更多個(gè)或更多個(gè)窗口窗口。QApplication對(duì)象是可以通過(guò)全局變量通過(guò)全局變量qApp訪問(wèn)訪問(wèn)。它的負(fù)責(zé)的主要范圍有:它使用用戶(hù)的桌面設(shè)置桌面設(shè)置,例如palette()、
3、font()和doubleClickInterval()來(lái)初始化應(yīng)用程序。如果用戶(hù)改變?nèi)肿烂妫缤ㄟ^(guò)一些控制面板,它會(huì)對(duì)這些屬性保持跟蹤。它執(zhí)行事件處理事件處理,也就是說(shuō)它從低下的窗口系統(tǒng)接收事件從低下的窗口系統(tǒng)接收事件并且把它們分派給相關(guān)的窗口部件分派給相關(guān)的窗口部件。通過(guò)使用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)下,可以通過(guò)setStyle()來(lái)改變。它指定了應(yīng)用程序如何分配顏色應(yīng)用程序如何分配顏色。詳細(xì)情況請(qǐng)參考setColSpec()。它定義了默認(rèn)文本編碼默認(rèn)文本編碼(請(qǐng)參考setDefaultCodec())并且提供了通過(guò)translate()用戶(hù)可見(jiàn)的本地化字符串。它提供了一些像de
5、sktop()和clipboard()這樣的魔術(shù)般的對(duì)象。它知道應(yīng)用程序的窗口應(yīng)用程序的窗口。你可以使用widgetAt()來(lái)詢(xún)問(wèn)在一個(gè)確定點(diǎn)上存在哪個(gè)窗口部件一個(gè)確定點(diǎn)上存在哪個(gè)窗口部件,得到一個(gè)topLevelWidgets()(頂級(jí)窗口部件)的(頂級(jí)窗口部件)的列表列表和通過(guò)closeAllWindows()來(lái)關(guān)閉所有窗口來(lái)關(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)用戶(hù)注銷(xiāo)時(shí),它可以讓?xiě)?yīng)用程序很好地結(jié)束,如果無(wú)法終止,撤消關(guān)閉進(jìn)程并且甚至為未來(lái)的對(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ì)象做了如此多的初始化,它必須在所有與用戶(hù)界面相關(guān)的其它類(lèi)被創(chuàng)建之前被創(chuàng)建。對(duì)象做了如此多的初始化,它必須在所有與用戶(hù)界面相關(guān)的其它類(lèi)被創(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)來(lái)改變主窗口部件。為了保持這個(gè)功能,你必須在setMainWidget()和它的任何重載之前設(shè)置你的默認(rèn)。)二、二、QApplication兩類(lèi)構(gòu)造的講解兩類(lèi)構(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)用者刪除。如果沒(méi)有頂級(jí)窗口部件,這個(gè)列表是空的(QPtrList::isEmpty())。注意一些頂級(jí)窗口部件也許被隱藏了,例如如果當(dāng)前沒(méi)有工具提示被顯示的工具提示。注意一些頂級(jí)窗口
10、部件也許被隱藏了,例如如果當(dāng)前沒(méi)有工具提示被顯示的工具提示。實(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可以用來(lái)定位最上層窗口可以用來(lái)定位最上層窗口QWidgetQApplication::widgetAt(intxinty)[static]返回當(dāng)前層返回當(dāng)前層xy點(diǎn)的點(diǎn)的widget可以用來(lái)定位當(dāng)前窗口可以用來(lái)定位當(dāng)前窗口,和top
12、LevelAt不同的是widgetAt是以globalscreenposition來(lái)判斷的,而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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- qt4 總體簡(jiǎn)介
- bootstrap常用類(lèi)簡(jiǎn)介
- 頭孢類(lèi)抗菌藥物簡(jiǎn)介
- document for qt
- 頭孢類(lèi)抗菌藥物簡(jiǎn)介匯編
- c++課程設(shè)計(jì)---qt圖形界面的日期類(lèi)實(shí)現(xiàn)
- abcmouse規(guī)范要求-三類(lèi)課程簡(jiǎn)介
- 主頁(yè)酒店簡(jiǎn)介的語(yǔ)類(lèi)分析.pdf
- c++ bitset類(lèi)的使用及簡(jiǎn)介
- qt間期延長(zhǎng)
- qt_plugin
- 南昌大學(xué)ⅱ類(lèi)通識(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ù)類(lèi)考研參考書(shū)目簡(jiǎn)介
- qt入門(mén)1《我的第一個(gè)qt程序》————高
- 6、27北理藝術(shù)類(lèi)設(shè)計(jì)學(xué)專(zhuān)業(yè)簡(jiǎn)介
- 數(shù)控車(chē)床加工螺紋類(lèi)零件方法簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論