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 指针。
信号被发射后于 2 小部件被通知即将改变透过 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 (), typically one of "windows", "windowsvista", "fusion", or "macintosh". Style names are case insensitive.
返回
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 按 point ( 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 .