?? qapplication.html
字號(hào):
<li><div class=fn>QSize <a href="#globalStrut"><b>globalStrut</b></a> ()</div></li>
<li><div class=fn>void <a href="#setLibraryPaths"><b>setLibraryPaths</b></a> ( const QStringList & paths )</div></li>
<li><div class=fn>QStringList <a href="#libraryPaths"><b>libraryPaths</b></a> ()</div></li>
<li><div class=fn>void <a href="#addLibraryPath"><b>addLibraryPath</b></a> ( const QString & path )</div></li>
<li><div class=fn>void <a href="#removeLibraryPath"><b>removeLibraryPath</b></a> ( const QString & path )</div></li>
<li><div class=fn>void <a href="#setStartDragTime"><b>setStartDragTime</b></a> ( int ms )</div></li>
<li><div class=fn>int <a href="#startDragTime"><b>startDragTime</b></a> ()</div></li>
<li><div class=fn>void <a href="#setStartDragDistance"><b>setStartDragDistance</b></a> ( int l )</div></li>
<li><div class=fn>int <a href="#startDragDistance"><b>startDragDistance</b></a> ()</div></li>
<li><div class=fn>void <a href="#setReverseLayout"><b>setReverseLayout</b></a> ( bool b )</div></li>
<li><div class=fn>bool <a href="#reverseLayout"><b>reverseLayout</b></a> ()</div></li>
<li><div class=fn>int <a href="#horizontalAlignment"><b>horizontalAlignment</b></a> ( int align )</div></li>
<li><div class=fn>bool <a href="#isEffectEnabled"><b>isEffectEnabled</b></a> ( Qt::UIEffect effect )</div></li>
<li><div class=fn>void <a href="#setEffectEnabled"><b>setEffectEnabled</b></a> ( Qt::UIEffect effect, bool enable = TRUE )</div></li>
<li><div class=fn>QWSDecoration & <a href="#qwsDecoration"><b>qwsDecoration</b></a> ()</div></li>
<li><div class=fn>void <a href="#qwsSetDecoration"><b>qwsSetDecoration</b></a> ( QWSDecoration * d )</div></li>
<li><div class=fn>WindowsVersion <a href="#winVersion"><b>winVersion</b></a> ()</div></li>
</ul>
<h2>相關(guān)函數(shù)</h2>
<ul>
<li><div class=fn>void <a href="#qAddPostRoutine"><b>qAddPostRoutine</b></a> ( QtCleanUpFunction p )</div></li>
<li><div class=fn>const char * <a href="#qVersion"><b>qVersion</b></a> ()</div></li>
<li><div class=fn>bool <a href="#qSysInfo"><b>qSysInfo</b></a> ( int * wordSize, bool * bigEndian )</div></li>
<li><div class=fn>void <a href="#qDebug"><b>qDebug</b></a> ( const char * msg, ... )</div></li>
<li><div class=fn>void <a href="#qWarning"><b>qWarning</b></a> ( const char * msg, ... )</div></li>
<li><div class=fn>void <a href="#qFatal"><b>qFatal</b></a> ( const char * msg, ... )</div></li>
<li><div class=fn>void <a href="#qSystemWarning"><b>qSystemWarning</b></a> ( const char * msg, int code )</div></li>
<li><div class=fn>void <a href="#Q_ASSERT"><b>Q_ASSERT</b></a> ( bool test )</div></li>
<li><div class=fn>void <a href="#Q_CHECK_PTR"><b>Q_CHECK_PTR</b></a> ( void * p )</div></li>
<li><div class=fn>QtMsgHandler <a href="#qInstallMsgHandler"><b>qInstallMsgHandler</b></a> ( QtMsgHandler h )</div></li>
</ul>
<hr><a name="details"></a><h2>詳細(xì)描述</h2>
QApplication類(lèi)管理圖形用戶界面應(yīng)用程序的控制流和主要設(shè)置。
<p> 它包含主事件循環(huán),在其中來(lái)自窗口系統(tǒng)和其它資源的所有事件被處理和調(diào)度。它也處理應(yīng)用程序的初始化和結(jié)束,并且提供對(duì)話管理。它也處理絕大多數(shù)系統(tǒng)范圍和應(yīng)用程序范圍的設(shè)置。
<p> 對(duì)于任何一個(gè)使用Qt的圖形用戶界面應(yīng)用程序,都正好存在一個(gè)QApplication對(duì)象,而不論這個(gè)應(yīng)用程序在同一時(shí)間內(nèi)是不是有0、1、2或更多個(gè)窗口。
<p> QApplication對(duì)象是可以通過(guò)全局變量<tt>qApp</tt>訪問(wèn)。它的負(fù)責(zé)的主要范圍有:
<ul>
<p> <li> 它使用用戶的桌面設(shè)置,例如<a href="#palette">palette</a>()、<a href="#font">font</a>()和<a href="#doubleClickInterval">doubleClickInterval</a>()來(lái)初始化應(yīng)用程序。如果用戶改變?nèi)肿烂妫缤ㄟ^(guò)一些控制面板,它會(huì)對(duì)這些屬性保持跟蹤。
<p> <li> 它執(zhí)行事件處理,也就是說(shuō)它從低下的窗口系統(tǒng)接收事件并且把它們分派給相關(guān)的窗口部件。通過(guò)使用<a href="#sendEvent">sendEvent</a>()和<a href="#postEvent">postEvent</a>(),你可以發(fā)送你自己的事件到窗口部件。
<p> <li> 它分析命令行參數(shù)并且根據(jù)它們?cè)O(shè)置內(nèi)部狀態(tài)。關(guān)于這點(diǎn)的詳細(xì)情況請(qǐng)參考下面的<a href="#QApplication">構(gòu)造函數(shù)文檔</a>。
<p> <li> 它定義了由<a href="qstyle.html">QStyle</a>對(duì)象封裝的應(yīng)用程序的觀感。在運(yùn)行狀態(tài)下,可以通過(guò)<a href="#setStyle">setStyle</a>()來(lái)改變。
<p> <li> 它指定了應(yīng)用程序如何分配顏色。詳細(xì)情況請(qǐng)參考<a href="#setColorSpec">setColorSpec</a>()。
<p> <li> 它定義了默認(rèn)文本編碼(請(qǐng)參考<a href="#setDefaultCodec">setDefaultCodec</a>())并且提供了通過(guò)<a href="#translate">translate</a>()用戶可見(jiàn)的<a href="i18n.html#localization">本地化</a>字符串。
<p> <li> 它提供了一些像<a href="#desktop">desktop</a>()和<a href="#clipboard">clipboard</a>()這樣的魔術(shù)般的對(duì)象。
<p> <li> 它知道應(yīng)用程序的窗口。你可以使用<a href="#widgetAt">widgetAt</a>()來(lái)詢(xún)問(wèn)在一個(gè)確定點(diǎn)上存在哪個(gè)窗口部件,得到一個(gè)<a href="#topLevelWidgets">topLevelWidgets</a>()(頂級(jí)窗口部件)的列表和通過(guò)<a href="#closeAllWindows">closeAllWindows</a>()來(lái)關(guān)閉所有窗口,等等。
<p> <li> 它管理應(yīng)用程序的鼠標(biāo)光標(biāo)處理,請(qǐng)參考<a href="#setOverrideCursor">setOverrideCursor</a>()和<a href="#setGlobalMouseTracking">setGlobalMouseTracking</a>()。
<p> <li> 在X窗口系統(tǒng)上,它提供刷新和同步通訊流的函數(shù),請(qǐng)參考<a href="#flushX">flushX</a>()和<a href="#syncX">syncX</a>()。
<p> <li> 它提供復(fù)雜的<a href="session.html">對(duì)話管理</a>支持。這使得當(dāng)用戶注銷(xiāo)時(shí),它可以讓?xiě)?yīng)用程序很好地結(jié)束,如果無(wú)法終止,撤消關(guān)閉進(jìn)程并且甚至為未來(lái)的對(duì)話保留整個(gè)應(yīng)用程序的狀態(tài)。詳細(xì)情況請(qǐng)參考<a href="#isSessionRestored">isSessionRestored</a>()、<a href="#sessionId">sessionId</a>()、<a href="#commitData">commitData</a>()和<a href="#saveState">saveState</a>()。
<p> </ul>
<p> <a href="simple-application.html">應(yīng)用程序排演實(shí)例</a>包含了一個(gè)QApplication通常用法的典型完整的main()。
<p> 因?yàn)镼Application對(duì)象做了如此多的初始化,它<em>必須</em>在所有與用戶界面相關(guān)的其它類(lèi)被創(chuàng)建之前被創(chuàng)建。
<p> 因?yàn)樗蔡幚砻钚袇?shù),在應(yīng)用程序中對(duì)<tt>argv</tt>解釋和修改<em>之前</em>創(chuàng)建它通常是一個(gè)好主意。(注意,也對(duì)于X11,<a href="#setMainWidget">setMainWidget</a>()可以根據(jù)<tt>-geometry</tt>選項(xiàng)來(lái)改變主窗口部件。為了保持這個(gè)功能,你必須在setMainWidget()和它的任何重載之前設(shè)置你的默認(rèn)。)
<p> <center><table cellpadding="4" cellspacing="2" border="0">
<tr bgcolor="#a2c511"> <th valign="top" colspan="2" rowspan="1"> 函數(shù)分組
<tr bgcolor="#f0f0f0">
<td valign="top" width="15%">系統(tǒng)設(shè)置
<td valign="top" width="85%">
<a href="#desktopSettingsAware">desktopSettingsAware</a>()、<a href="#setDesktopSettingsAware">setDesktopSettingsAware</a>()、<a href="#cursorFlashTime">cursorFlashTime</a>()、<a href="#setCursorFlashTime">setCursorFlashTime</a>()、<a href="#doubleClickInterval">doubleClickInterval</a>()、<a href="#setDoubleClickInterval">setDoubleClickInterval</a>()、<a href="#wheelScrollLines">wheelScrollLines</a>()、<a href="#setWheelScrollLines">setWheelScrollLines</a>()、<a href="#palette">palette</a>()、<a href="#setPalette">setPalette</a>()、<a href="#font">font</a>()、<a href="#setFont">setFont</a>()、<a href="#fontMetrics">fontMetrics</a>()。
<tr bgcolor="#d0d0d0">
<td valign="top">事件處理
<td valign="top">
<a href="#exec">exec</a>()、<a href="#processEvents">processEvents</a>()、<a href="#enter_loop">enter_loop</a>()、<a href="#exit_loop">exit_loop</a>()、<a href="#exit">exit</a>()、<a href="#quit">quit</a>()。
<a href="#sendEvent">sendEvent</a>()、<a href="#postEvent">postEvent</a>()、<a href="#sendPostedEvents">sendPostedEvents</a>()、<a href="#removePostedEvents">removePostedEvents</a>()、<a href="#hasPendingEvents">hasPendingEvents</a>()、<a href="#notify">notify</a>()、<a href="#macEventFilter">macEventFilter</a>()、<a href="#qwsEventFilter">qwsEventFilter</a>()、<a href="#x11EventFilter">x11EventFilter</a>()、<a href="#x11ProcessEvent">x11ProcessEvent</a>()、<a href="#winEventFilter">winEventFilter</a>()。
<tr bgcolor="#f0f0f0">
<td valign="top">圖形用戶界面風(fēng)格
<td valign="top">
<a href="#style">style</a>()、<a href="#setStyle">setStyle</a>()、<a href="#polish">polish</a>()。
<tr bgcolor="#d0d0d0">
<td valign="top">顏色使用
<td valign="top">
<a href="#colorSpec">colorSpec</a>()、<a href="#setColorSpec">setColorSpec</a>()、<a href="#qwsSetCustomColors">qwsSetCustomColors</a>()。
<tr bgcolor="#f0f0f0">
<td valign="top">文本處理
<td valign="top">
<a href="#setDefaultCodec">setDefaultCodec</a>()、<a href="#installTranslator">installTranslator</a>()、<a href="#removeTranslator">removeTranslator</a>()、<a href="#translate">translate</a>()。
<tr bgcolor="#d0d0d0">
<td valign="top">窗口部件
<td valign="top">
<a href="#mainWidget">mainWidget</a>()、<a href="#setMainWidget">setMainWidget</a>()、<a href="#allWidgets">allWidgets</a>()、<a href="#topLevelWidgets">topLevelWidgets</a>()、<a href="#desktop">desktop</a>()、<a href="#activePopupWidget">activePopupWidget</a>()、<a href="#activeModalWidget">activeModalWidget</a>()、<a href="#clipboard">clipboard</a>()、<a href="#focusWidget">focusWidget</a>()、<a href="#winFocus">winFocus</a>()、<a href="#activeWindow">activeWindow</a>()、<a href="#widgetAt">widgetAt</a>()。
<tr bgcolor="#f0f0f0">
<td valign="top">高級(jí)光標(biāo)處理
<td valign="top">
<a href="#hasGlobalMouseTracking">hasGlobalMouseTracking</a>()、<a href="#setGlobalMouseTracking">setGlobalMouseTracking</a>()、<a href="#overrideCursor">overrideCursor</a>()、<a href="#setOverrideCursor">setOverrideCursor</a>()、<a href="#restoreOverrideCursor">restoreOverrideCursor</a>()。
<tr bgcolor="#d0d0d0">
<td valign="top">X窗口系統(tǒng)同步
<td valign="top">
<a href="#flushX">flushX</a>()、<a href="#syncX">syncX</a>()。
<tr bgcolor="#f0f0f0">
<td valign="top">對(duì)話管理
<td valign="top">
<a href="#isSessionRestored">isSessionRestored</a>()、<a href="#sessionId">sessionId</a>()、<a href="#commitData">commitData</a>()、<a href="#saveState">saveState</a>()。
<tr bgcolor="#d0d0d0">
<td valign="top">線程
<td valign="top">
<a href="#lock">lock</a>()、<a href="#unlock">unlock</a>()、<a href="#locked">locked</a>()、<a href="#tryLock">tryLock</a>()、<a href="#wakeUpGuiThread">wakeUpGuiThread</a>()。
<tr bgcolor="#f0f0f0">
<td valign="top">雜項(xiàng)
<td valign="top">
<a href="#closeAllWindows">closeAllWindows</a>()、<a href="#startingUp">startingUp</a>()、<a href="#closingDown">closingDown</a>()、<a href="#type">type</a>()。
</table></center>
<p> <em>非圖形用戶界面程序:</em>雖然Qt沒(méi)有為寫(xiě)非圖形用戶界面程序而優(yōu)化設(shè)計(jì),不創(chuàng)建QApplication也可以使用<a href="tools.html">它的一些類(lèi)</a>。如果你想在一個(gè)非圖形用戶界面服務(wù)器和一個(gè)圖形用戶界面客戶端之間共享代碼,這點(diǎn)很有用。
<p>也可以參考<a href="application.html">主窗口和相關(guān)類(lèi)</a>。
<hr><h2>成員類(lèi)型文檔</h2>
<h3 class=fn><a name="ColorSpec-enum"></a>QApplication::ColorSpec</h3>
<p> 這個(gè)枚舉變量定義了應(yīng)用程序的顏色分配策略:
<ul>
<li><tt>QApplication::NormalColor</tt> - 默認(rèn)的顏色分配策略
<li><tt>QApplication::CustomColor</tt> - 在X11下和NormalColor一樣,在Windows下根據(jù)需要為調(diào)色板分配顏色
<li><tt>QApplication::ManyColor</tt> - 使用上千種顏色的應(yīng)用程序的正確選擇
</ul><p> 完整細(xì)節(jié)請(qǐng)參考<a href="#setColorSpec">setColorSpec</a>()。
<h3 class=fn><a name="Encoding-enum"></a>QApplication::Encoding</h3>
<p> 這個(gè)枚舉變量為<a href="#translate">translate</a>()定義了字符串參數(shù)的8位編碼。
<ul>
<li><tt>QApplication::DefaultCodec</tt> - <a href="#defaultCodec">defaultCodec</a>()的編碼(如果沒(méi)有被設(shè)置就是Latin-1)
<li><tt>QApplication::UnicodeUTF8</tt> - UTF-8
</ul><p> <p>也可以參考<a href="qobject.html#tr">QObject::tr</a>()、<a href="qobject.html#trUtf8">QObject::trUtf8</a>()和<a href="qstring.html#fromUtf8">QString::fromUtf8</a>()。
<h3 class=fn><a name="Type-enum"></a>QApplication::Type</h3>
<p> 這個(gè)枚舉變量定義了QApplication的類(lèi)型:
<ul>
<li><tt>QApplication::Tty</tt> - 控制臺(tái)應(yīng)用程序
<li><tt>QApplication::GuiClient</tt> - 圖形用戶界面客戶端應(yīng)用程序
<li><tt>QApplication::GuiServer</tt> - 圖形用戶界面服務(wù)器應(yīng)用程序
</ul>
<hr><h2>成員函數(shù)文檔</h2>
<h3 class=fn><a name="QApplication"></a>QApplication::QApplication ( int & argc, char ** argv )
</h3>
初始化窗口系統(tǒng)并且使用在<em>argv</em>中的<em>argc</em>個(gè)命令行參數(shù)構(gòu)造一個(gè)應(yīng)用程序?qū)ο蟆?<p> 全局指針<tt>qApp</tt>指向這個(gè)應(yīng)用程序?qū)ο蟆?yīng)該只有一個(gè)應(yīng)用程序?qū)ο蟊粍?chuàng)建。
<p> 這個(gè)應(yīng)用程序?qū)ο蟊仨氃谌魏?lt;a href="qpaintdevice.html">繪制設(shè)備</a>(包括窗口部件、像素映射、位圖等等)之前被構(gòu)造。
<p> 注意<em>argc</em>和<em>argv</em>也可以被改變。Qt會(huì)移除它能夠識(shí)別的命令行參數(shù)。原來(lái)的<em>argc</em>和<em>argv</em>稍后可以通過(guò)<tt>qApp->argc()</tt>和<tt>qApp->argv()</tt>來(lái)訪問(wèn)。<a href="#argv">argv</a>()的文檔中包含如何處理命令行參數(shù)的詳細(xì)描述。
<p> Qt調(diào)試選項(xiàng)(如果Qt被使用被定義的QT_NO_DEBUG標(biāo)記進(jìn)行編譯,這些選項(xiàng)就是不可用的):
<ul>
<li> -nograb,告訴Qt永遠(yuǎn)不要捕獲鼠標(biāo)或者鍵盤(pán)。
<li> -dograb (只有在X11下),在調(diào)試器下運(yùn)行可能導(dǎo)致和-nograb沖突,使用-dograb來(lái)覆蓋。
<li> -sync (只有在X11下),為了調(diào)試切換為同步模式。
</ul>
<p> 更詳細(xì)的解釋請(qǐng)參考<a href="debug.html">調(diào)試技術(shù)</a>。
<p> 所有的Qt程序自動(dòng)支持下面這些命令行選項(xiàng):
<ul>
<li> -style= <em>style</em>,設(shè)置應(yīng)用程序圖形用戶界面風(fēng)格。可能的值有<tt>motif</tt>、<tt>windows</tt>和<tt>platinum</tt>。如果你使用其它風(fēng)格編譯Qt或者有作為插件編譯了其它風(fēng)格,那么它們都可以被用作<tt>-style</tt>命令行選項(xiàng)。
<li> -style <em>style</em>,這個(gè)和上面的一樣。
<li> -session= <em>session</em>,從以前的<a href="session.html">對(duì)話</a>中重新載入應(yīng)用程序。
<li> -session <em>session</em>,這個(gè)和上面的一樣。
</ul>
<p> X11版本的Qt也支持傳統(tǒng)的X11命令行選項(xiàng):
<ul>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -