The QApplication 類管理 GUI 應用程序的控製流和主要設置。 更多...
| 頭: | #include <QApplication> |
| qmake: | QT += widgets |
| 繼承: | QGuiApplication |
|
|
| QApplication (int & argc , char ** argv ) | |
| virtual | ~QApplication () |
| QString | styleSheet () const |
| virtual bool | notify (QObject * receiver , QEvent * e ) |
| void | aboutQt () |
| bool | autoSipEnabled () const |
| void | closeAllWindows () |
| void | setAutoSipEnabled (const bool enabled ) |
| void | setStyleSheet (const QString & sheet ) |
| void | focusChanged (QWidget * old , QWidget * now ) |
| QWidget * | activeModalWidget () |
| QWidget * | activePopupWidget () |
| QWidget * | activeWindow () |
| void | alert (QWidget * widget , int msec = 0) |
| QWidgetList | allWidgets () |
| void | beep () |
| int | cursorFlashTime () |
| QDesktopWidget * | desktop () |
| int | doubleClickInterval () |
| int | exec () |
| QWidget * | focusWidget () |
| QFont | font () |
| QFont | font (const QWidget * widget ) |
| QFont | font (const char * className ) |
| QFontMetrics | fontMetrics () |
| QSize | globalStrut () |
| bool | isEffectEnabled (Qt::UIEffect effect ) |
| int | keyboardInputInterval () |
| Qt::NavigationMode | navigationMode () |
| QPalette | palette (const QWidget * widget ) |
| QPalette | palette (const char * className ) |
| void | setActiveWindow (QWidget * active ) |
| void | setCursorFlashTime ( int ) |
| void | setDoubleClickInterval ( int ) |
| void | setEffectEnabled (Qt::UIEffect effect , bool enable = true) |
| void | setFont (const QFont & font , const char * className = Q_NULLPTR) |
| void | setGlobalStrut ( const QSize & ) |
| void | setKeyboardInputInterval ( int ) |
| void | setNavigationMode (Qt::NavigationMode mode ) |
| void | setPalette (const QPalette & palette , const char * className = Q_NULLPTR) |
| void | setStartDragDistance (int l ) |
| void | setStartDragTime (int ms ) |
| void | setStyle (QStyle * style ) |
| QStyle * | setStyle (const QString & style ) |
| void | setWheelScrollLines ( int ) |
| void | setWindowIcon (const QIcon & icon ) |
| int | startDragDistance () |
| int | startDragTime () |
| QStyle * | style () |
| QWidget * | topLevelAt (const QPoint & point ) |
| QWidget * | topLevelAt (int x , int y ) |
| QWidgetList | topLevelWidgets () |
| int | wheelScrollLines () |
| QWidget * | widgetAt (const QPoint & point ) |
| QWidget * | widgetAt (int x , int y ) |
| QIcon | windowIcon () |
| virtual bool | event (QEvent * e ) |
| qApp |
The QApplication 類管理 GUI 應用程序的控製流和主要設置。
QApplication 專攻 QGuiApplication 具有一些所需功能對於 QWidget 基應用程序。它處理 Widget 特定初始化、定稿。
對於使用 QT 的任何 GUI 應用程序,準確存在 one QApplication 對象,無論應用程序在任何給定時間是否擁有 0 個、1 個、2 個或更多個窗口。對於非 QWidget 基 Qt 應用程序,使用 QGuiApplication 代替,因為它不從屬 QtWidgets 庫。
某些 GUI 應用程序提供特殊批處理模式 (即:提供用於執行任務的命令行自變量,不用手動乾預)。在這種非 GUI 模式下,經常是足夠的實例化純 QCoreApplication 以避免不必要地初始化圖形用戶界麵所需資源。以下範例展示如何動態創建適當類型的應用程序實例:
QCoreApplication* createApplication(int &argc, char *argv[]) { for (int i = 1; i < argc; ++i) if (!qstrcmp(argv[i], "-no-gui")) return new QCoreApplication(argc, argv); return new QApplication(argc, argv); } int main(int argc, char* argv[]) { QScopedPointer<QCoreApplication> app(createApplication(argc, argv)); if (qobject_cast<QApplication *>(app.data())) { // start GUI version... } else { // start non-GUI version... } return app->exec(); }
The QApplication 對象可訪問透過 instance () 函數返迴指針相當於全局 qApp 指針。
QApplication 主要負責的領域:
由於
QApplication
對象會做如此多的初始化,它
must
被創建,在創建用戶界麵相關的任何其它對象之前。
QApplication
還處理常見命令行自變量。因此,創建它通常是一個好主意
before
任何解釋或修改對於
argv
的履行在應用程序本身。
| 函數組 | |
|---|---|
| 係統設置 | desktopSettingsAware (), setDesktopSettingsAware (), cursorFlashTime (), setCursorFlashTime (), doubleClickInterval (), setDoubleClickInterval (), setKeyboardInputInterval (), wheelScrollLines (), setWheelScrollLines (), palette (), setPalette (), font (), setFont (), fontMetrics (). |
| 事件處理 | exec (), processEvents (), exit (), quit (). sendEvent (), postEvent (), sendPostedEvents (), removePostedEvents (), hasPendingEvents(), notify (). |
| GUI 樣式 | style (), setStyle (). |
| 顔色用法 | colorSpec(), setColorSpec(). |
| 文本處理 | installTranslator (), removeTranslator () translate (). |
| 小部件 | allWidgets (), topLevelWidgets (), desktop (), activePopupWidget (), activeModalWidget (), clipboard (), focusWidget (), activeWindow (), widgetAt (). |
| 高級光標處理 | overrideCursor (), setOverrideCursor (), restoreOverrideCursor (). |
| 雜項 | closeAllWindows (), startingUp (), closingDown (). |
另請參閱 QCoreApplication , QAbstractEventDispatcher , QEventLoop ,和 QSettings .
切換自動 SIP (軟件輸入麵闆) 可見性
把此特性設為
true
以自動顯示 SIP 當整個 Widget 接受鍵盤輸入時。此特性僅影響有設置 WA_InputMethodEnabled 屬性的 Widget,且通常用於在擁有很少鍵 (或沒有鍵) 的設備中發起虛擬鍵盤。
此特性僅對使用軟件輸入麵闆的平颱有影響。
默認從屬平颱。
該特性在 Qt 4.5 引入。
訪問函數:
| bool | autoSipEnabled () const |
| void | setAutoSipEnabled (const bool enabled ) |
此特性保持文本光標的刷新 (眨眼) 時間 (以毫秒為單位)
閃爍時間是顯示、反轉和還原插入符號顯示要求的時間。通常,文本光標的顯示為光標閃爍時間的一半,接著隱藏為相同時間數,但這可能有所不同。
在 X11,默認值為 1000 毫秒。在 Windows, 控製麵闆 值被使用且設置此特性將設置所有應用程序的光標閃爍時間。
推薦 Widget 不要緩存此值,因為它可能隨時更改,若用戶更改全局桌麵設置。
注意: 此特性可以保持負值,例如:若光標眨眼被禁用。
訪問函數:
| int | cursorFlashTime () |
| void | setCursorFlashTime ( int ) |
此特性保持的時間限製 (以毫秒為單位) 用於區分雙擊和連續 2 次鼠標點擊
在 X11,默認值為 400 毫秒。在 Windows 和 Mac OS,使用操作係統的值。
訪問函數:
| int | doubleClickInterval () |
| void | setDoubleClickInterval ( int ) |
此特性保持用戶可以與之交互的任何 GUI 元素應有的最小大小
例如,不應將按鈕大小重置成小於全局結構大小。應考慮結構大小,當重實現可以用於觸摸屏 (或類似 I/O 設備) 的 GUI 控件時。
範例:
QSize MyWidget::sizeHint() const { return QSize(80, 25).expandedTo(QApplication::globalStrut()); }
默認情況下,此特性包含 QSize 對象具有 0 寬度和高度。
訪問函數:
| QSize | globalStrut () |
| void | setGlobalStrut ( const QSize & ) |
此特性保持區分鍵按下和 2 次連續鍵按下的時間限製 (以毫秒為單位)
在 X11,默認值為 400 毫秒。在 Windows 和 Mac OS,使用操作係統的值。
該特性在 Qt 4.2 引入。
訪問函數:
| int | keyboardInputInterval () |
| void | setKeyboardInputInterval ( int ) |
若應用程序支持拖放,且想要開始拖放操作在用戶有按下按鈕將光標移動一定距離後,應使用此特性值作為最小要求距離。
例如,若將點擊鼠標位置存儲在
startPos
且當前位置 (如:在鼠標移動事件中) 為
currentPos
, 可以找齣是否應采用像這樣的代碼啓動拖拽:
int main(int argc, char *argv[]) { QApplication::setDesktopSettingsAware(false); QApplication app(argc, argv); ... return app.exec(); }
Qt 使用此值在內部,如在 QFileDialog .
默認值 (若平颱沒有提供不同默認值) 為 10 像素。
訪問函數:
| int | startDragDistance () |
| void | setStartDragDistance (int l ) |
另請參閱 startDragTime (), QPoint::manhattanLength (),和 拖放 .
此特性保持必須保持鼠標按鈕按下的時間 (以毫秒為單位),在開始拖放操作前
若應用程序支持拖放,且想要開始拖放操作在用戶有按下鼠標按鈕一定時間後,應使用此特性值作為延遲。
Qt 內部也使用此延遲,如在 QTextEdit and QLineEdit ,為開始拖拽。
默認值為 500 毫秒。
訪問函數:
| int | startDragTime () |
| void | setStartDragTime (int ms ) |
另請參閱 startDragDistance () 和 拖放 .
此特性保持應用程序樣式錶
默認情況下,此特性返迴空字符串除非用戶指定
-stylesheet
選項在命令行當運行應用程序時。
該特性在 Qt 4.2 引入。
訪問函數:
| QString | styleSheet () const |
| void | setStyleSheet (const QString & sheet ) |
另請參閱 QWidget::setStyle () 和 Qt 樣式錶 .
此特性保持 Widget 要捲動的行數,當鼠標滾輪鏇轉時。
若值超過 Widget 可見行數,Widget 應將捲動操作解釋成單 page up or page down 。若 Widget 是 項視圖類 ,那麼導緻捲動一 line 從屬小部件的設置 捲動模式 。捲動一 line 可以意味著 捲動 1 項 or 捲動 1 像素 .
默認情況下,此屬性擁有 3 值。
訪問函數:
| int | wheelScrollLines () |
| void | setWheelScrollLines ( int ) |
另請參閱 QStyleHints::wheelScrollLines ().
此特性保持默認窗口圖標
訪問函數:
| QIcon | windowIcon () |
| QIcon | windowIcon () |
| void | setWindowIcon (const QIcon & icon ) |
| void | setWindowIcon (const QIcon & icon ) |
另請參閱 QWidget::setWindowIcon () 和 設置應用程序圖標 .
初始化窗口係統並構造應用程序對象采用 argc 命令行自變量在 argv .
警告: 數據引用通過 argc and argv 必須保持有效對於整個生命周期 QApplication 對象。此外, argc 必須大於 0 且 argv 必須包含至少一條有效字符串。
全局
qApp
指針引用此應用程序對象。隻應創建一個應用程序對象。
此應用程序對象必須被構造先於任何 描繪設備 (包括小部件、像素圖、位圖等)。
注意: argc and argv 可能改變當 Qt 移除它識彆的命令行自變量時。
所有 Qt 程序自動支持以下命令行選項:
-style
命令行選項。還可以設置所有 Qt 應用程序的風格,通過設置
QT_STYLE_OVERRIDE
環境變量。
注意: 樣式錶文件中的相對 URL 相對於樣式錶文件路徑。
另請參閱 QCoreApplication::arguments ().
[虛擬]
QApplication::
~QApplication
()
清理由此應用程序分配的任何窗口係統資源。設置全局變量
qApp
為 0。
[static slot]
void
QApplication::
aboutQt
()
顯示關於 Qt 的簡單消息框。消息包括應用程序正使用的 Qt 版本號。
這很有用,對於包括 幫助 菜單的應用程序,如展示在 菜單 範例。
此函數是方便槽對於 QMessageBox::aboutQt ().
[static]
QWidget
*QApplication::
activeModalWidget
()
返迴活動的模態 Widget。
模態 Widget 是特殊頂層 Widget 是子類化的 QDialog 將構造函數的模態參數指定為 true。必須關閉模態 Widget 在用戶可以繼續程序的其它部分之前。
模態 Widget 被組織在堆棧中。此函數返迴堆棧頂部的活動模態 Widget。
另請參閱 activePopupWidget () 和 topLevelWidgets ().
[static]
QWidget
*QApplication::
activePopupWidget
()
返迴活動彈齣 Widget。
彈齣 Widget 是特殊頂層 Widget 有設置
Qt::WType_Popup
小部件標誌,如
QMenu
小部件。當應用程序打開彈齣 Widget 時,所有事件會被發送給彈齣 Widget。正常 Widget 和模態 Widget 無法訪問,在關閉彈齣 Widget 之前。
隻能打開其它彈齣 Widget,當展示彈齣 Widget 時。彈齣 Widget 被組織在堆棧中。此函數返迴在堆棧頂部的活動彈齣 Widget。
另請參閱 activeModalWidget () 和 topLevelWidgets ().
[static]
QWidget
*QApplication::
activeWindow
()
返迴擁有鍵盤輸入聚焦的應用程序頂層窗口,或 0 若沒有應用程序窗口擁有聚焦。可能有 activeWindow() 即使沒有 focusWidget (),例如:若該窗口的 Widget 不接受鍵事件。
另請參閱 setActiveWindow (), QWidget::setFocus (), QWidget::hasFocus (),和 focusWidget ().
[static]
void
QApplication::
alert
(
QWidget
*
widget
,
int
msec
= 0)
導緻展示警報 widget 若窗口不是活動窗口。展示警報 msec 毫秒。若 msec 為 0 (默認),則無限期展示警報,直到窗口再次變為活動為止。
目前,此函數在 Qt for Embedded Linux 什麼都不做。
在 macOS,這更多地是工作於應用程序級彆,且導緻應用程序圖標會在停放中跳動。
在 Windows,這導緻窗口的任務欄條目會閃爍一段時間。若 msec 為 0,閃爍會停止,且任務欄條目將變成不同顔色 (目前為橙色)。
在 X11,這導緻窗口會被標記成 "要求關注",窗口不得隱藏 (即:沒有對它調用 hide(),但以某種方式可見) 為讓這能工作。
該函數在 Qt 4.3 引入。
[static]
QWidgetList
QApplication::
allWidgets
()
返迴應用程序的所有 Widget 的列錶。
列錶為空 ( QList::isEmpty ()) 若沒有 Widget。
注意: 某些 Widget 可能被隱藏。
範例:
void updateAllWidgets() { foreach (QWidget *widget, QApplication::allWidgets()) widget->update(); }
另請參閱 topLevelWidgets () 和 QWidget::isVisible ().
[static]
void
QApplication::
beep
()
發齣鈴聲,使用默認音量和聲音。函數 not 可用於 Qt for Embedded Linux。
[static slot]
void
QApplication::
closeAllWindows
()
關閉所有頂層窗口。
此函數尤其有用,對於具有很多頂層窗口的應用程序而言。例如,可以將它連接到 Exit 條目在 File 菜單:
const QIcon exitIcon = QIcon::fromTheme("application-exit");
QAction *exitAct = fileMenu->addAction(exitIcon, tr("E&xit"), qApp, &QApplication::closeAllWindows);
exitAct->setShortcuts(QKeySequence::Quit);
exitAct->setStatusTip(tr("Exit the application"));
fileMenu->addAction(exitAct);
窗口按隨機次序關閉,直到某個窗口不接受關閉事件為止。應用程序離開,當成功關閉最後一個窗口時;可以關閉這通過設置 quitOnLastWindowClosed 為 false。
另請參閱 quitOnLastWindowClosed , lastWindowClosed (), QWidget::close (), QWidget::closeEvent (), lastWindowClosed (), QCoreApplication::quit (), topLevelWidgets (),和 QWidget::isWindow ().
[static]
QDesktopWidget
*QApplication::
desktop
()
返迴桌麵 Widget (也稱根窗口)。
桌麵可能由多個屏幕組成,因此它將是不正確的,例如:試圖 center 某個 Widget 在桌麵幾何體中。 QDesktopWidget 擁有各種用於獲得桌麵上有用幾何體的函數,譬如 QDesktopWidget::screenGeometry () 和 QDesktopWidget::availableGeometry ().
在 X11,在桌麵上繪製也是可能的。
[virtual protected]
bool
QApplication::
event
(
QEvent
*
e
)
重實現自 QObject::event ().
[static]
int
QApplication::
exec
()
進入主事件循環並等待,直到 exit () 被調用,然後將設置值返迴給 exit () (為 0 若 exit () 被調用憑藉 quit ()).
有必要調用此函數以啓動事件處理。主事件循環從窗口係統接收事件,並將其分派給應用程序 Widget。
一般來說,在調用 exec() 之前不會發生用戶交互。作為特殊情況,模態 Widget 像 QMessageBox 可以在調用 exec() 之前使用,因為模態 Widget 會調用 exec() 以啓動本地事件循環。
要使應用程序履行空閑處理 (即:執行特殊函數,每當沒有待決事件時),使用 QTimer 采用 0 超時。更高級空閑處理方案可以達成使用 processEvents ().
推薦把清理代碼連接到
aboutToQuit()
信號,而不是將它放入應用程序的
main()
函數。這是因為,在某些平颱調用 QApplication::exec() 可能不返迴。例如,在 Windows 平颱,當用戶注銷時,係統會在 Qt 關閉所有頂層窗口後終止進程。因此,
不保證
應用程序會有時間退齣其事件循環並執行代碼結束
main()
函數,在調用 QApplication::exec() 後。
另請參閱 quitOnLastWindowClosed , QCoreApplication::quit (), QCoreApplication::exit (), QCoreApplication::processEvents (),和 QCoreApplication::exec ().
[signal]
void
QApplication::
focusChanged
(
QWidget
*
old
,
QWidget
*
now
)
此信號發射,當 Widget 鍵盤聚焦的改變是從 old to now ,即,由於用戶按下 tab 鍵、點擊 Widget,或改變活動窗口。兩者 old and now 可以是 null 指針。
信號發射,後於兩者 Widget 被通知即將改變透過 QFocusEvent .
該函數在 Qt 4.1 引入。
另請參閱 QWidget::setFocus (), QWidget::clearFocus (),和 Qt::FocusReason .
[static]
QWidget
*QApplication::
focusWidget
()
返迴擁有鍵盤輸入聚焦的應用程序 Widget,或 0 若此應用程序的 Widget 不擁有聚焦。
另請參閱 QWidget::setFocus (), QWidget::hasFocus (), activeWindow (),和 focusChanged ().
[static]
QFont
QApplication::
font
()
返迴應用程序的默認字體。
另請參閱 setFont (), fontMetrics (),和 QWidget::font ().
[static]
QFont
QApplication::
font
(const
QWidget
*
widget
)
這是重載函數。
返迴默認字體,為 widget .
另請參閱 fontMetrics () 和 QWidget::setFont ().
[static]
QFont
QApplication::
font
(const
char
*
className
)
這是重載函數。
返迴 Widget 字體為給定 className .
另請參閱 setFont () 和 QWidget::font ().
[static]
QFontMetrics
QApplication::
fontMetrics
()
返迴用於應用程序字體的顯示 (屏幕) 字體規格。
另請參閱 font (), setFont (), QWidget::fontMetrics (),和 QPainter::fontMetrics ().
[static]
bool
QApplication::
isEffectEnabled
(
Qt::UIEffect
effect
)
返迴
true
if
effect
被啓用;否則返迴
false
.
默認情況下,Qt 試著使用桌麵設置。要阻止這,調用 setDesktopSettingsAware (false).
注意: 所有效果被禁用,當運行在低於 16 位顔色深度的屏幕。
另請參閱 setEffectEnabled () 和 Qt::UIEffect .
[static]
Qt::NavigationMode
QApplication::
navigationMode
()
返迴 Qt 使用哪種聚焦導航。
此特徵隻可用於 Qt for Embedded Linux。
該函數在 Qt 4.6 引入。
另請參閱 setNavigationMode () 和 keypadNavigationEnabled ().
[虛擬]
bool
QApplication::
notify
(
QObject
*
receiver
,
QEvent
*
e
)
重實現自 QCoreApplication::notify ().
[static]
QPalette
QApplication::
palette
(const
QWidget
*
widget
)
這是重載函數。
若 widget 有傳遞,返迴 Widget 類的默認調色闆。這可能 (或不可能) 是應用程序調色闆。在大多數情況下,某些類型的 Widget 沒有特殊調色闆,但值得注意的一例外是 Windows 下的彈齣菜單,若用戶有為顯示菜單,設置定義瞭特殊背景色。
另請參閱 setPalette () 和 QWidget::palette ().
[static]
QPalette
QApplication::
palette
(const
char
*
className
)
這是重載函數。
返迴用於 Widget 的調色闆為給定 className .
另請參閱 setPalette () 和 QWidget::palette ().
[static]
void
QApplication::
setActiveWindow
(
QWidget
*
active
)
將活動窗口設為 active 小部件以響應係統事件。函數調用自平颱特定事件處理程序。
警告: 此函數做 not 設置活動 Widget 的鍵盤聚焦。調用 QWidget::activateWindow () 代替。
它設置 activeWindow () 和 focusWidget () 屬性並發送適當 WindowActivate / WindowDeactivate and FocusIn / FocusOut 事件到所有閤適 Widget。然後,將按活動狀態描繪窗口 (如:行編輯中的光標會眨眼),且它將啓用工具提示。
另請參閱 activeWindow () 和 QWidget::activateWindow ().
[static]
void
QApplication::
setEffectEnabled
(
Qt::UIEffect
effect
,
bool
enable
= true)
啓用 UI 效果 effect if enable 為 True,否則效果將不會被使用。
注意: 所有效果被禁用,當運行在低於 16 位顔色深度的屏幕。
另請參閱 isEffectEnabled (), Qt::UIEffect ,和 setDesktopSettingsAware ().
[static]
void
QApplication::
setFont
(const
QFont
&
font
, const
char
*
className
= Q_NULLPTR)
將應用程序默認字體改為 font 。若 className 有傳遞,改變僅適用的類繼承 className (如報告通過 QObject::inherits ()).
當應用程序啓動時,默認字體從屬窗口係統。它可能因窗口係統版本和區域設置兩者而異。此函數讓您覆蓋默認字體;但覆蓋可能是壞主意,因為,例如:某些區域設置需要特大字體以支持它們的特殊字符。
警告: 不要使用此函數結閤 Qt 樣式錶 。可以使用 font 樣式錶特性定製應用程序字體。要為所有 QPushButton 設置粗體字體,設置應用程序 styleSheet () 如 " QPushButton { font: bold }"
另請參閱 font (), fontMetrics (),和 QWidget::setFont ().
[static]
void
QApplication::
setNavigationMode
(
Qt::NavigationMode
mode
)
將聚焦導航 Qt 應使用的種類設為 mode .
此特徵隻可用於 Qt for Embedded Linux。
該函數在 Qt 4.6 引入。
另請參閱 navigationMode () 和 keypadNavigationEnabled ().
[static]
void
QApplication::
setPalette
(const
QPalette
&
palette
, const
char
*
className
= Q_NULLPTR)
將應用程序默認調色闆更改為 palette .
若 className 有傳遞,改變僅應用於 Widget 有繼承 className (如報告通過 QObject::inherits ())。若 className 為 0,改變影響所有 Widget,從而覆蓋任何先前設置的類特定調色闆。
調色闆可能根據當前 GUI 風格改變在 QStyle::polish ().
警告: 不要使用此函數結閤 Qt 樣式錶 。當使用樣式錶時,可以使用 color、background-color、selection-color、selection-background-color 及 alternate-background-color 定製 Widget 調色闆。
注意: 某些風格不會對所有繪製使用調色闆 (例如:若他們使用本機主題引擎)。Windows XP、Windows Vista 和 macOS 風格就是這種情況。
另請參閱 QWidget::setPalette (), palette (),和 QStyle::polish ().
[static]
void
QApplication::
setStyle
(
QStyle
*
style
)
將應用程序的 GUI 風格設為 style 。將風格對象的所有權轉移給 QApplication ,所以 QApplication 會在應用程序退齣時刪除風格對象,或者當有設置新風格且舊風格仍是應用程序對象的父級時。
用法範例:
QApplication::setStyle(QStyleFactory::create("Fusion"));
當切換應用程序風格時,顔色調色闆被設迴初始顔色 (或係統默認)。這有必要,由於某些風格必須適配顔色調色闆,以完全兼容風格指南。
設置風格在設置調色闆之前,即先於創建 QApplication ,將導緻應用程序使用 QStyle::standardPalette () 對於調色闆。
警告: Qt 樣式錶目前不支持自定義 QStyle 子類。計劃在某些未來發行中解決此問題。
另請參閱 style (), QStyle , setPalette (),和 desktopSettingsAware ().
[static]
QStyle
*QApplication::
setStyle
(const
QString
&
style
)
這是重載函數。
請求 QStyle 對象為 style 從 QStyleFactory .
字符串必須是某一 QStyleFactory::keys (),通常是 windows、fusion、windowsxp 或 macintosh 之一。樣式名不區分大小寫。
返迴 0 若未知 style 被傳遞,否則 QStyle 返迴對象被設為應用程序的 GUI 樣式。
警告: 要確保應用程序樣式設置正確,最好調用此函數先於 QApplication 構造函數,若可能的話。
[static]
QStyle
*QApplication::
style
()
[static]
QWidget
*QApplication::
topLevelAt
(const
QPoint
&
point
)
返迴頂層 Widget 按給定 point ;返迴 0 若沒有這種 Widget。
[static]
QWidget
*QApplication::
topLevelAt
(
int
x
,
int
y
)
這是重載函數。
返迴頂層 Widget 按點 ( x , y );返迴 0 若沒有這種 Widget。
[static]
QWidgetList
QApplication::
topLevelWidgets
()
返迴應用程序頂層 Widget (窗口) 的列錶。
注意: 可能隱藏某些頂層 Widget,例如:工具提示若目前未展示工具提示。
範例:
void showAllHiddenTopLevelWidgets() { foreach (QWidget *widget, QApplication::topLevelWidgets()) { if (widget->isHidden()) widget->show(); } }
另請參閱 allWidgets (), QWidget::isWindow (),和 QWidget::isHidden ().
[static]
QWidget
*QApplication::
widgetAt
(const
QPoint
&
point
)
返迴 Widget,在全局屏幕位置 point ,或 0 若那裏沒有 Qt Widget。
此函數可能很慢。
另請參閱 QCursor::pos (), QWidget::grabMouse (),和 QWidget::grabKeyboard ().
[static]
QWidget
*QApplication::
widgetAt
(
int
x
,
int
y
)
這是重載函數。
返迴 Widget,在全局屏幕位置 ( x , y ),或 0 若那裏沒有 Qt Widget。
引用唯一應用程序對象的全局指針。它相當於 QCoreApplication::instance (),但鑄造作為 QApplication 指針,因此纔有效當唯一應用程序對象為 QApplication .
另請參閱 QCoreApplication::instance () 和 qGuiApp .