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 ) override |
| 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 = nullptr) |
| void | setGlobalStrut ( const QSize & ) |
| void | setKeyboardInputInterval ( int ) |
| void | setNavigationMode (Qt::NavigationMode mode ) |
| void | setPalette (const QPalette & palette , const char * className = 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 () |
| const QMetaObject | staticMetaObject |
| 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 ) override |
| 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
, 可以找齣是否應采用像這樣的代碼啓動拖拽:
if ((startPos - currentPos).manhattanLength() >= QApplication::startDragDistance()) startTheDrag();
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 () |
| 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 什麼都不做。
On macOS , this works more at the application level and will cause the application icon to bounce in the dock.
在 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 some widget in the desktop's geometry. QDesktopWidget has various functions for obtaining useful geometries upon the desktop, such as QDesktopWidget::screenGeometry () 和 QDesktopWidget::availableGeometry ().
在 X11,在桌麵上繪製也是可能的。
[override virtual protected]
bool
QApplication::
event
(
QEvent
*
e
)
重實現自 QGuiApplication::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 ().
[override virtual]
bool
QApplication::
notify
(
QObject
*
receiver
,
QEvent
*
e
)
重實現自 QGuiApplication::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
= 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
= 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 調色闆。
注意: Some styles do not use the palette for all drawing, for instance, if they make use of native theme engines. This is the case for the Windows Vista and macOS styles.
另請參閱 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、windowsvista、fusion 或 macintosh 之一。風格名不區分大小寫。
返迴
nullptr
若未知
style
被傳遞,否則
QStyle
返迴對象被設為應用程序的 GUI 樣式。
警告: 要確保應用程序樣式設置正確,最好調用此函數先於 QApplication 構造函數,若可能的話。
[static]
QStyle
*QApplication::
style
()
[static]
QWidget
*QApplication::
topLevelAt
(const
QPoint
&
point
)
返迴頂層 Widget 按給定
point
;返迴
nullptr
若沒有這種 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 .