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 () | 
| int | doubleClickInterval () | 
| int | exec () | 
| QWidget * | focusWidget () | 
| QFont | font () | 
| QFont | font (const QWidget * widget ) | 
| QFont | font (const char * className ) | 
| QFontMetrics | fontMetrics () | 
| 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 | 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 () | 
| 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 | 
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(); }
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 (). | 
| 文本处理 | 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 ) | 
此特性保持区分键按下和 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 ().
[static slot]
					
					
						void
					
					QApplication::
					
						aboutQt
					
					()
					
				显示关于 Qt 的简单消息框。消息包括应用程序正使用的 Qt 版本号。
这很有用,对于包括 帮助 菜单的应用程序,如展示在 菜单 范例。
此函数是方便槽对于 QMessageBox::aboutQt ().
[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 ().
[signal]
					
					
						void
					
					QApplication::
					
						focusChanged
					
					(
					
						
							QWidget
						
					
					*
					
						old
					
					,
					
						
							QWidget
						
					
					*
					
						now
					
					)
					
				
					此信号被发射当 Widget 键盘聚焦的改变是从
					
						old
					
					to
					
						now
					
					,即,由于用户按下 tab 键、点击 Widget,或改变活动窗口。两者
					
						old
					
					and
					
						now
					
					可以是
					
nullptr
					
					.
				
信号被发射后于 2 小部件被通知即将改变透过 QFocusEvent .
该函数在 Qt 4.1 引入。
另请参阅 QWidget::setFocus (), QWidget::clearFocus (),和 Qt::FocusReason .
[虚拟]
					
					QApplication::
					
						~QApplication
					
					()
					
				
					清理由此应用程序分配的任何窗口系统资源。设置全局变量
					
qApp
					
					to
					
nullptr
					
					.
				
[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
					
					()
					
				
					返回拥有键盘输入聚焦的应用程序顶层窗口,或
					
nullptr
					
					若应用程序窗口不拥有聚焦。可能存在 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() { const QWidgetList allWidgets = QApplication::allWidgets(); for (QWidget *widget : allWidgets) widget->update(); }
另请参阅 topLevelWidgets () 和 QWidget::isVisible ().
[static]
					
					
						void
					
					QApplication::
					
						beep
					
					()
					
				响铃声,使用默认音量和声音。函数 not 可用于 Qt for Embedded Linux。
[override virtual protected]
					
					
						bool
					
					QApplication::
					
						event
					
					(
					
						
							QEvent
						
					
					*
					
						e
					
					)
					
				重实现: QGuiApplication::event (QEvent *e).
[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 ().
[static]
					
					
						
							QWidget
						
					
					*QApplication::
					
						focusWidget
					
					()
					
				
					返回拥有键盘输入聚焦的应用程序 Widget,或
					
nullptr
					
					若此应用程序的 Widget 不拥有聚焦。
				
另请参阅 QWidget::setFocus (), QWidget::hasFocus (), activeWindow (),和 focusChanged ().
[static]
					
					
						
							QFont
						
					
					QApplication::
					
						font
					
					()
					
				返回应用程序的默认字体。
另请参阅 setFont (), fontMetrics (),和 QWidget::font ().
[static]
					
					
						
							QFont
						
					
					QApplication::
					
						font
					
					(const
					
						
							QWidget
						
					
					*
					
						widget
					
					)
					
				这是重载函数。
返回默认字体,为 widget 。若未注册默认字体为 widget 类,返回其最近注册超类的默认字体。
另请参阅 fontMetrics (), setFont (),和 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 ().
[override virtual]
					
					
						bool
					
					QApplication::
					
						notify
					
					(
					
						
							QObject
						
					
					*
					
						receiver
					
					,
					
						
							QEvent
						
					
					*
					
						e
					
					)
					
				重实现: QGuiApplication::notify (QObject *object, QEvent *event).
[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 ().
[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 调色板。
注意: 某些风格不使用调色板对于所有绘制 (例如:若它们使用本机主题引擎)。这是针对 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 (), 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() { const QWidgetList topLevelWidgets = QApplication::topLevelWidgets(); for (QWidget *widget : topLevelWidgets) { if (widget->isHidden()) widget->show(); } }
另请参阅 allWidgets (), QWidget::isWindow (),和 QWidget::isHidden ().
[static]
					
					
						
							QWidget
						
					
					*QApplication::
					
						widgetAt
					
					(const
					
						
							QPoint
						
					
					&
					
						point
					
					)
					
				
					返回 Widget 按全局屏幕位置
					
						point
					
					,或
					
nullptr
					
					若那里没有 Qt Widget。
				
此函数可能很慢。
另请参阅 QCursor::pos (), QWidget::grabMouse (),和 QWidget::grabKeyboard ().
[static]
					
					
						
							QWidget
						
					
					*QApplication::
					
						widgetAt
					
					(
					
						int
					
					
						x
					
					,
					
						int
					
					
						y
					
					)
					
				这是重载函数。
					返回 Widget 按全局屏幕位置 (
					
						x
					
					,
					
						y
					
					),或
					
nullptr
					
					若那里没有 Qt Widget。
				
引用唯一应用程序对象的全局指针。它相当于 QCoreApplication::instance (),但铸造作为 QApplication 指针,因此才有效当唯一应用程序对象为 QApplication .
另请参阅 QCoreApplication::instance () 和 qGuiApp .