?? qapplication.html
字號:
</h3>
如果有未處理的事件,這個函數返回真,否則返回假。未處理的事件可以是來自于窗口系統,也可以是使用<a href="#postEvent">QApplication::postEvent</a>()發送的事件。
<h3 class=fn>int <a name="horizontalAlignment"></a>QApplication::horizontalAlignment ( int align )<tt> [靜態]</tt>
</h3>
<p> 去掉垂直對齊標記并且根據使用的語言把AlignAuto的對齊方式<em>align</em>轉換為AlignLeft或者AlignRight。其它水平對齊標記不被改變而留下。
<h3 class=fn>void <a name="installTranslator"></a>QApplication::installTranslator ( <a href="qtranslator.html">QTranslator</a> * mf )
</h3>
添加消息文件<em>mf</em>到翻譯所用的消息文件列表。
<p> 可以安裝多種消息文件。翻譯會在最后安裝的消息文件中搜索,然后是緊接著最后的,并且繼續,一直到最先安裝的。一旦找到匹配的翻譯,搜索就停止。
<p> <p>也可以參考<a href="#removeTranslator">removeTranslator</a>()、<a href="#translate">translate</a>()和<a href="qtranslator.html#load">QTranslator::load</a>()。
<p>實例:<a href="i18n-example.html#x1919">i18n/main.cpp</a>。
<h3 class=fn>bool <a name="isEffectEnabled"></a>QApplication::isEffectEnabled ( <a href="qt.html#UIEffect-enum">Qt::UIEffect</a> effect )<tt> [靜態]</tt>
</h3>
如果<em>effect</em>生效,返回真,否則返回假。
<p> 默認,Qt將視圖使用桌面設置。調用<a href="#setDesktopSettingsAware">setDesktopSettingsAware</a>(FALSE)可以防止這一點。
<p> <p>也可以參考<a href="#setEffectEnabled">setEffectEnabled</a>()和<a href="qt.html#UIEffect-enum">Qt::UIEffect</a>。
<h3 class=fn>bool <a name="isSessionRestored"></a>QApplication::isSessionRestored () const
</h3>
<p> 如果應用程序已經從以前的對方中恢復,返回真,否則返回假。
<p> <p>也可以參考<a href="#sessionId">sessionId</a>()、<a href="#commitData">commitData</a>()和<a href="#saveState">saveState</a>()。
<h3 class=fn>void <a name="lastWindowClosed"></a>QApplication::lastWindowClosed ()<tt> [信號]</tt>
</h3>
<p> 當用戶關閉最后一個頂級窗口時,這個信號被發射。
<p> 當你的應用程序有很多頂級窗口部件,而沒有主窗口部件時,這個信號很有用。你可以把它和<a href="#quit">quit</a>()槽連接起來。
<p> 為了方便,對于短暫的頂級窗口部件,例如彈出菜單和對話框,這個信號<em>不</em>被發射。
<p> <p>也可以參考<a href="#mainWidget">mainWidget</a>()、<a href="#topLevelWidgets">topLevelWidgets</a>()、<a href="qwidget.html#isTopLevel-prop">QWidget::isTopLevel</a>和<a href="qwidget.html#close">QWidget::close</a>()。
<p>實例:<a href="qaction-application-example.html#x1100">action/main.cpp</a>、<a href="addressbook-example.html#x556">addressbook/main.cpp</a>、<a href="tutorial2-04.html#x2463">chart/main.cpp</a>、<a href="helpviewer-example.html#x1042">helpviewer/main.cpp</a>、<a href="qwerty-example.html#x414">qwerty/main.cpp</a>和<a href="showimg-example.html#x1297">showimg/main.cpp</a>。
<h3 class=fn><a href="qstringlist.html">QStringList</a> <a name="libraryPaths"></a>QApplication::libraryPaths ()<tt> [靜態]</tt>
</h3>
返回當動態載入庫的時候,應用程序將搜索的路徑列表。如果沒有路徑被設置,<tt>$QTDIR/plugins</tt>將作為唯一的條目被返回。
<p> 如果你想遍歷這個列表,你應該遍歷一個復制,例如:
<pre>
<a href="qstringlist.html">QStringList</a> list = app.libraryPaths();
QStringList::Iterator it = list.<a href="qvaluelist.html#begin">begin</a>();
while( it != list.<a href="qvaluelist.html#end">end</a>() ) {
myProcessing( *it );
++it;
}
</pre>
<p> 關于如何使用庫路徑的詳細情況請參考<a href="plugins-howto.html">插件文檔</a>。
<p> <p>也可以參考<a href="#setLibraryPaths">setLibraryPaths</a>()、<a href="#addLibraryPath">addLibraryPath</a>()、<a href="#removeLibraryPath">removeLibraryPath</a>()和<a href="qlibrary.html">QLibrary</a>。
<h3 class=fn>void <a name="lock"></a>QApplication::lock ()
</h3>
<p> 鎖住Qt庫互斥量。如果另外一個線程已經鎖住這個互斥量,那么這個調用線程將會阻塞,直到其它線程對這個互斥量解鎖。
<p> <p>也可以參考<a href="#unlock">unlock</a>()、<a href="#locked">locked</a>()和<a href="threads.html">Qt中的線程支持</a>。
<h3 class=fn>bool <a name="locked"></a>QApplication::locked ()
</h3>
<p> 如果Qt庫互斥量被不同的線程鎖住,返回真,否則返回假。
<p> <b>警告:</b>由于在被支持的平臺上,遞歸互斥量的實現不同,在以前鎖住互斥量的同一個線程中調用這個函數將會給出不確定的結果。
<p> <p>也可以參考<a href="#lock">lock</a>()、<a href="#unlock">unlock</a>()和<a href="threads.html">Qt中的線程支持</a>。
<h3 class=fn>int <a name="loopLevel"></a>QApplication::loopLevel () const
</h3>
返回當前循環水平。
<p> <p>也可以參考<a href="#enter_loop">enter_loop</a>()和<a href="#exit_loop">exit_loop</a>()。
<h3 class=fn>bool <a name="macEventFilter"></a>QApplication::macEventFilter ( EventRef )<tt> [虛]</tt>
</h3>
這個虛函數只在Macintosh下被實現。
<p> 如果你創建一個繼承QApplication并且重新實現這個函數的應用程序,你可以直接訪問從Mac OS接收的所有Carbon事件。
<p> 如果你想停止正在處理的事件,返回真。對于普通事件分派,返回假。
<h3 class=fn><a href="qwidget.html">QWidget</a> * <a name="mainWidget"></a>QApplication::mainWidget () const
</h3>
<p> 返回主應用程序窗口部件,如果沒有主窗口部件,返回0。
<p> <p>也可以參考<a href="#setMainWidget">setMainWidget</a>()。
<h3 class=fn>bool <a name="notify"></a>QApplication::notify ( <a href="qobject.html">QObject</a> * receiver, <a href="qevent.html">QEvent</a> * e )<tt> [虛]</tt>
</h3>
把事件<em>e</em>發送給<em>receiver</em>:<em>receiver</em>->event(<em>e</em>)。返回接收者的事件處理器返回值。
<p> 對于確定類型的事件(例如鼠標和鍵盤事件),如果接收者對這個事件沒有興趣(也就是說它返回假),事件將被傳播給接收者的父對象一直到頂級對象。
<p> 這里有事件被處理的五種不同方法,重新實現這個函數是其中的一個。所有這五種途徑如下:
<ol type=1>
<li> 重新實現這個函數。這是一個非常強大,提供了完整控制,但只能是qApp的子類。
<p> <li> 在qApp上安裝事件過濾器。這樣的事件過濾器可以為所有窗口部件處理所有的事件,所以它和重新實現<a href="#notify">notify</a>()一樣強大;此外,可以有超過一個的應用程序全局事件過濾器。全局事件過濾器甚至可以看到<a href="qwidget.html#isEnabled">失效的窗口部件</a>的鼠標事件,并且如果<a href="#setGlobalMouseTracking">全局鼠標跟蹤</a>生效,它可以見到所有窗口部件的鼠標移動事件。
<p> <li> 重新實現<a href="qobject.html#event">QObject::event</a>()(就像<a href="qwidget.html">QWidget</a>做的那樣)。如果你這樣做來得到Tab鍵按下,并且你會在任何窗口部件特定的事件過濾器之前看到這個事件。
<p> <li> 在一個對象中安裝事件過濾器。這樣的事件過濾器可以得到除了Tab和Shift-Tab鍵按下之外的所有事件。
<p> <li> 重新實現paintEvent()、mousePressEvent()和其它。這是最普通、最容易并且最不強大的方式。
</ol>
<p> <p>也可以參考<a href="qobject.html#event">QObject::event</a>()和<a href="qobject.html#installEventFilter">installEventFilter</a>()。
<h3 class=fn><a href="qcursor.html">QCursor</a> * <a name="overrideCursor"></a>QApplication::overrideCursor ()<tt> [靜態]</tt>
</h3>
<p> 返回激活的應用程序強制光標。
<p> 如果沒有應用程序關標被指定(也就是說內部光標棧為空),這個函數返回0。
<p> <p>也可以參考<a href="#setOverrideCursor">setOverrideCursor</a>()和<a href="#restoreOverrideCursor">restoreOverrideCursor</a>()。
<h3 class=fn><a href="qpalette.html">QPalette</a> <a name="palette"></a>QApplication::palette ( const <a href="qwidget.html">QWidget</a> * w = 0 )<tt> [靜態]</tt>
</h3>
返回默認應用程序調色板的指針。這個一直是應用程序的調色板,也就是說返回的指針被保證為非零。
<p> 如果被傳遞的窗口部件<em>w</em>,返回這個窗口部件的默認調色板。這個可能是,也可能不是應用程序調色板。在絕大多數情況下,普通類型的窗口部件沒有特殊調色板,但是一個需要注意的例外是在Windows下的彈出菜單,如果用戶在顯示設置中為菜單定義了特定背景色。
<p> <p>也可以參考<a href="#setPalette">setPalette</a>()和<a href="qwidget.html#palette-prop">QWidget::palette</a>。
<p>實例:<a href="desktop-example.html#x1761">desktop/desktop.cpp</a>、<a href="themes-example.html#x225">themes/metal.cpp</a>和<a href="themes-example.html#x146">themes/wood.cpp</a>。
<h3 class=fn>void <a name="polish"></a>QApplication::polish ( <a href="qwidget.html">QWidget</a> * w )<tt> [虛]</tt>
</h3>
在窗口部件<em>w</em>被顯示<em>之前</em>,初始化它的外觀。
<p> 通常當窗口部件被拋光時,它們會自動調用這個函數。它也可以被用來做窗口部件的基于風格的主要定制。
<p> 注意你不會被<a href="qwidget.html">QWidget</a>的公有函數限制。相反,基于像<a href="qobject.html#className">QObject::className</a>()這些元信息,你可以對任何種類的窗口部件進行定制。
<p> <p>也可以參考<a href="qstyle.html#polish">QStyle::polish</a>()、<a href="qwidget.html#polish">QWidget::polish</a>()、<a href="#setPalette">setPalette</a>()和<a href="#setFont">setFont</a>()。
<h3 class=fn>void <a name="postEvent"></a>QApplication::postEvent ( <a href="qobject.html">QObject</a> * receiver, <a href="qevent.html">QEvent</a> * event )<tt> [靜態]</tt>
</h3>
把事件<em>event</em>添加為對象<em>receiver</em>的接收對象,把它添加到事件隊列中并且立即返回。
<p> 這個時間必須在堆中被分配,因為遞送事件隊列將會得到事件的所有權并且一旦它被遞送就刪除它。
<p> 當控制返回主事件循環,存儲在隊列中的所有事件將被使用<a href="#notify">notify</a>()函數發送。
<p> <p>也可以參考<a href="#sendEvent">sendEvent</a>()、<a href="qthread.html#postEvent">QThread::postEvent</a>()和<a href="#notify">notify</a>()。
<h3 class=fn>void <a name="processEvents"></a>QApplication::processEvents ()
</h3>
處理未處理的事件,在3秒內或者直到沒有沒有更多的事件要處理,看哪一個更短。
<p> 偶爾當你的程序很忙來處理一個長期操作(例如,復制文件),你可以調用這個函數。
<p> <p>也可以參考<a href="#exec">exec</a>()和<a href="qtimer.html">QTimer</a>。
<p>實例:<a href="fileiconview-example.html#x805">fileiconview/qfileiconview.cpp</a>。
<h3 class=fn>void <a name="processEvents-2"></a>QApplication::processEvents ( int maxtime )
</h3>
這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。
<p> 處理未處理的事件,在<em>maxtime</em>毫秒內或者直到沒有沒有更多的事件要處理,看哪一個更短。
<p> 偶爾當你的程序很忙來處理一個長期操作(例如,復制文件),你可以調用這個函數。
<p> <p>也可以參考<a href="#exec">exec</a>()和<a href="qtimer.html">QTimer</a>。
<h3 class=fn>void <a name="processOneEvent"></a>QApplication::processOneEvent ()
</h3>
等待一個事件的發生,處理它,然后返回。
<p> 這個函數對于使Qt能夠適應事件處理必須移植到已經存在的程序循環中很有用處。
<p> 在新的應用程序中使用這個函數可能意味著設計的問題。
<p> <p>也可以參考<a href="#processEvents">processEvents</a>()、<a href="#exec">exec</a>()和<a href="qtimer.html">QTimer</a>。
<h3 class=fn>void <a name="quit"></a>QApplication::quit ()<tt> [槽]</tt>
</h3>
告訴應用程序退出,并且返回代碼為0(成功)。相當于調用<a href="#exit">QApplication::exit</a>( 0 )。
<p> 把<a href="#lastWindowClosed">lastWindowClosed</a>()信號和<a href="#quit">quit</a>()連接起來是很普通的,并且你也可以經常把比如<a href="qbutton.html#clicked">QButton::clicked</a>()或者<a href="qaction.html">QAction</a>、<a href="qpopupmenu.html">QPopupMenu</a>或<a href="qmenubar.html">QMenuBar</a>中的信號和它連接起來。
<p> 實例:
<pre>
<a href="qpushbutton.html">QPushButton</a> *quitButton = new <a href="qpushbutton.html">QPushButton</a>( "Quit" );
<a href="qobject.html#connect">connect</a>( quitButton, SIGNAL(<a href="qbutton.html#clicked">clicked</a>()), qApp, SLOT(<a href="#quit">quit</a>()) );
</pre>
<p> <p>也可以參考<a href="#exit">exit</a>()、<a href="#aboutToQuit">aboutToQuit</a>()、<a href="#lastWindowClosed">lastWindowClosed</a>()和<a href="qaction.html">QAction</a>。
<p>實例:<a href="addressbook-example.html#x557">addressbook/main
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -