QApplication Class
QApplication 类管理 GUI 应用程序的控制流和主要设置。更多
头文件: | #include <QApplication> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QGuiApplication |
属性
|
|
公共函数
QApplication(int &argc, char **argv) | |
virtual | ~QApplication() |
bool | autoSipEnabled() const |
QString | styleSheet() const |
重新实现的公共函数
virtual bool | notify(QObject *receiver, QEvent *e) override |
公共插槽
void | aboutQt() |
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) |
bool | isEffectEnabled(Qt::UIEffect effect) |
int | keyboardInputInterval() |
Qt::NavigationMode | navigationMode() |
QPalette | palette(const QWidget *widget) |
QPalette | palette(const char *className) |
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) |
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) |
重新实现的受保护函数
virtual bool | event(QEvent *e) override |
宏
详细说明
QApplication 专门为QGuiApplication 提供基于QWidget 的应用程序所需的某些功能。它处理部件特定的初始化和最终化。
对于任何使用 Qt GUI 的应用程序,无论该应用程序在任何给定时间内有 0、1、2 或更多窗口,都只有一个QApplication 对象。对于非基于QWidget 的 Qt XML 应用程序,请使用QGuiApplication 代替,因为它不依赖于QtWidgets 库。
有些图形用户界面应用程序提供特殊的批处理模式,即提供命令行参数,用于执行任务而无需人工干预。在这种非图形用户界面模式下,通常只需实例化一个普通的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 的主要职责如下:
- 它使用用户的桌面设置(如palette(),font() 和doubleClickInterval() )初始化应用程序。它会跟踪这些属性,以防用户通过某种控制面板等方式全局更改桌面。
- 它执行事件处理,即接收来自底层窗口系统的事件并将其派发到相关部件。通过使用sendEvent() 和postEvent() 可以向部件发送自己的事件。
- 它能解析常见的命令行参数,并相应设置其内部状态。更多详情,请参阅下面的constructor documentation 。
- 它定义了应用程序的外观,并封装在QStyle 对象中。运行时可通过setStyle() 进行更改。
- 它通过translate() 对用户可见的字符串进行本地化。
- 它提供了一些神奇的对象,如clipboard() 。
- 它了解应用程序的窗口。您可以使用widgetAt() 询问哪个窗口小部件位于某个位置,也可以获取topLevelWidgets() 和closeAllWindows() 的列表,等等。
- 它管理应用程序的鼠标指针处理,参见setOverrideCursor()
由于 QApplication 对象承担了大量初始化工作,因此必须在创建与用户界面相关的其他对象之前创建它。QApplication 还处理常见的命令行参数。因此,在应用程序本身对argv
进行任何解释或修改之前创建它通常是个好主意。
功能组 | |
---|---|
系统设置 | desktopSettingsAware(),setDesktopSettingsAware(),cursorFlashTime(),setCursorFlashTime(),doubleClickInterval(),setDoubleClickInterval(),setKeyboardInputInterval(),wheelScrollLines(),setWheelScrollLines(),palette(),setPalette(),font(),setFont(), fontMetrics(). |
事件处理 | exec(),processEvents(),exit(),quit().sendEvent(),postEvent(),sendPostedEvents(),removePostedEvents(),notify(). |
GUI 样式 | style(),setStyle(). |
文本处理 | installTranslator(),removeTranslator()translate(). |
小工具 | allWidgets(),topLevelWidgets(),activePopupWidget(),activeModalWidget(),clipboard(),focusWidget(),activeWindow(),widgetAt(). |
高级光标处理 | overrideCursor(),setOverrideCursor(),restoreOverrideCursor(). |
杂项 | closeAllWindows(),startingUp(),closingDown(). |
另请参阅 QCoreApplication,QAbstractEventDispatcher,QEventLoop, 和QSettings 。
属性文档
autoSipEnabled : bool
切换 SIP(软件输入面板)的自动可见性
将此属性设置为true
,可在进入接受键盘输入的 widget 时自动显示 SIP。该属性只影响设置了 WA_InputMethodEnabled 属性的部件,通常用于在按键很少或没有按键的设备上启动虚拟键盘。
该属性仅对使用软件输入面板的平台有效。
默认值取决于平台。
访问功能:
bool | autoSipEnabled() const |
void | setAutoSipEnabled(const bool enabled) |
cursorFlashTime : int
该属性用于保存文本光标的闪烁(闪烁)时间(毫秒)。
闪烁时间是指显示、反转和恢复光标显示所需的时间。通常情况下,文本光标的显示时间为光标闪烁时间的一半,然后在相同的时间内隐藏,但也可能有所不同。
X11 的默认值为 1000 毫秒。在 Windows 中,使用的是Control Panel 值,设置此属性可为所有应用程序设置光标闪烁时间。
我们建议窗口小部件不要缓存该值,因为如果用户更改了全局桌面设置,该值随时可能发生变化。
注意: 该属性可能持有负值,例如,如果光标闪烁被禁用。
访问功能:
int | cursorFlashTime() |
void | setCursorFlashTime(int) |
doubleClickInterval : int
该属性用于区分双击和连续两次鼠标点击的时间限制(毫秒)。
X11 的默认值为 400 毫秒。在 Windows 和 Mac OS 上,则使用操作系统的值。
访问功能:
int | doubleClickInterval() |
void | setDoubleClickInterval(int) |
keyboardInputInterval : int
该属性以毫秒为单位,用于区分一次按键和连续两次按键的时间限制。
X11 的默认值为 400 毫秒。在 Windows 和 Mac OS 上,则使用操作系统的值。
访问功能:
int | keyboardInputInterval() |
void | setKeyboardInputInterval(int) |
startDragDistance : int
该属性用于保存开始拖放操作所需的最小距离。
如果您的应用程序支持拖放,并希望在用户按住按钮将光标移动一定距离后启动拖放操作,则应使用此属性的值作为所需的最小距离。
例如,如果点击时的鼠标位置存储在startPos
中,而当前位置(如鼠标移动事件中的位置)为currentPos
,您就可以通过以下代码了解是否应启动拖放操作:
if ((startPos - currentPos).manhattanLength() >= QApplication::startDragDistance()) startTheDrag();
Qt XML 在内部使用此值,例如在QFileDialog 中。
默认值(如果平台没有提供不同的默认值)为 10 像素。
访问函数:
int | startDragDistance() |
void | setStartDragDistance(int l) |
另请参阅 startDragTime(),QPoint::manhattanLength() 以及拖放。
startDragTime : int
该属性用于保存拖放操作开始前按住鼠标键的时间(以毫秒为单位)。
如果您的应用程序支持拖放,并希望在用户按住鼠标键一定时间后开始拖放操作,则应使用此属性的值作为延迟时间。
Qt 内部也使用此延迟,例如在QTextEdit 和QLineEdit 中,用于启动拖放。
默认值为 500 毫秒。
访问函数:
int | startDragTime() |
void | setStartDragTime(int ms) |
另请参阅 startDragDistance() 和Drag and Drop。
styleSheet : QString
该属性包含应用程序样式表
默认情况下,该属性返回空字符串,除非用户在运行应用程序时在命令行中指定-stylesheet
选项。
访问函数:
QString | styleSheet() const |
void | setStyleSheet(const QString &sheet) |
另请参阅 QWidget::setStyle() 和Qt XML 样式表。
wheelScrollLines : int
该属性用于保存当鼠标滚轮旋转时滚动 widget 的行数。
如果该值超过了 widget 的可视行数,则 widget 应将滚动操作解释为单页向上或向下滚动。如果 Widget 是item view class ,那么滚动一行的结果取决于 Widget 的scroll mode 设置。滚动一行可以是scroll one item 或scroll one pixel 。
默认情况下,该属性的值为 3。
访问功能:
int | wheelScrollLines() |
void | setWheelScrollLines(int) |
另请参阅 QStyleHints::wheelScrollLines() 。
成员函数文档
QApplication::QApplication(int &argc, char **argv)
在argv 中初始化窗口系统并使用argc 命令行参数构建应用程序对象。
警告: argc 和argv 引用的数据必须在 QApplication 对象的整个生命周期内保持有效。此外,argc 必须大于零,argv 必须至少包含一个有效字符串。
全局qApp
指针指向该应用程序对象。只能创建一个应用程序对象。
该应用程序对象必须在任何paint devices (包括部件、像素图、位图等)之前创建。
注意: argc 和argv 可能会更改,因为 Qt 会删除它能识别的命令行参数。
所有 Qt 程序都自动支持以下命令行选项:
- -style=风格,设置应用程序的图形用户界面风格。可能的值取决于系统配置。如果您在编译 Qt 时使用了其他样式,或将其他样式作为插件,那么
-style
命令行选项也将支持这些样式。您还可以通过设置QT_STYLE_OVERRIDE
环境变量来为所有 Qt 应用程序设置样式。 - -style样式,与上面列出的相同。
- -stylesheet=样式表,设置应用程序样式表。该值必须是包含样式表的文件路径。
注意: 样式表文件中的相对 URL 是相对于样式表文件路径的。
- -stylesheet样式表,与上面列出的相同。
- -widgetcount,在最后打印调试信息,说明未销毁的部件数量和同时存在的最大部件数量。
- -reverse,将应用程序的布局方向设置为Qt::RightToLeft
- -qmljsdebugger=,激活指定端口的 QML/JS 调试器。该值的格式必须是 port:1234[,block],其中 block 是可选项,它将使应用程序等待调试器连接到它。
另请参阅 QCoreApplication::arguments().
[virtual noexcept]
QApplication::~QApplication()
清理该程序分配的窗口系统资源。将全局变量qApp
设置为nullptr
。
[static slot]
void QApplication::aboutQt()
显示有关 Qt 的简单消息框。该信息包括应用程序使用的 Qt 版本号。
如菜单示例所示,该信息可用于包含在应用程序的Help 菜单中。
该函数是QMessageBox::aboutQt() 的便利槽。
[static]
QWidget *QApplication::activeModalWidget()
返回活动的模态部件。
模态部件是一种特殊的顶层部件,它是QDialog 的子类,将构造函数的模态参数指定为 true。用户必须先关闭模态部件,才能继续运行程序的其他部分。
模态 widget 是以堆栈的形式组织起来的。该函数返回堆栈顶部的活动模态部件。
另请参阅 activePopupWidget() 和topLevelWidgets()。
[static]
QWidget *QApplication::activePopupWidget()
返回激活的弹出窗口部件。
弹出窗口部件是一种特殊的顶级窗口部件,可设置Qt::WType_Popup
窗口部件标志,例如QMenu 窗口部件。当应用程序打开弹出窗口部件时,所有事件都会发送到弹出窗口。在弹出窗口部件关闭之前,无法访问普通窗口部件和模式窗口部件。
在弹出窗口部件显示时,只能打开其他弹出窗口部件。弹出窗口部件以堆栈的形式排列。该函数返回堆栈顶部的活动弹出窗口部件。
另请参阅 activeModalWidget() 和topLevelWidgets()。
[static]
QWidget *QApplication::activeWindow()
返回拥有键盘输入焦点的应用程序顶层窗口,如果没有应用程序窗口拥有焦点,则返回nullptr
。即使没有focusWidget() 也可能有 activeWindow(),例如,如果该窗口中没有部件接受按键事件。
另请参阅 QWidget::setFocus()、QWidget::hasFocus() 和focusWidget()。
[static]
void QApplication::alert(QWidget *widget, int msec = 0)
如果窗口不是活动窗口,则在widget 上显示警报。警报显示时间为msec 毫秒。如果msec 为零(默认值),则警报将无限期显示,直到窗口再次处于活动状态。
目前,该功能在 Qt for Embedded Linux 上不起作用。
在 macOS 上,该功能更多是在应用程序层面上工作,会导致应用程序图标在 dock 中跳动。
在 Windows 上,这会导致窗口的任务栏条目闪烁一段时间。如果msec 为零,闪烁将停止,任务栏条目将变成不同的颜色(目前为橙色)。
在 X11 上,这将导致窗口被标记为 "需要注意",窗口必须未被隐藏(即未被调用 hide(),但以某种方式可见),这样才能起作用。
[static]
QWidgetList QApplication::allWidgets()
返回应用程序中所有 widget 的列表。
如果没有部件,则列表为空 (QList::isEmpty()) 。
注意: 某些部件可能是隐藏的。
示例:
void updateAllWidgets() { const QWidgetList allWidgets = QApplication::allWidgets(); for (QWidget *widget : allWidgets) widget->update(); }
另请参阅 topLevelWidgets() 和QWidget::isVisible()。
[static]
void QApplication::beep()
使用默认音量和声音发出铃声。该功能在 Qt for Embedded Linux 中不可用。
[static slot]
void QApplication::closeAllWindows()
关闭所有顶级窗口。
该功能对于有许多顶层窗口的应用程序特别有用。
窗口会以随机顺序关闭,直到其中一个窗口不接受关闭事件。除非quitOnLastWindowClosed 设为 false,否则当最后一个窗口成功关闭时,应用程序就会退出。要从菜单等触发应用程序终止,请使用QCoreApplication::quit() 代替此函数。
另请参阅 quitOnLastWindowClosed,lastWindowClosed(),QWidget::close(),QWidget::closeEvent(),lastWindowClosed(),QCoreApplication::quit(),topLevelWidgets(), 和QWidget::isWindow().
[override virtual protected]
bool QApplication::event(QEvent *e)
重实现:QGuiApplication::event(QEvent *e)。
[static]
int QApplication::exec()
进入主事件循环,等待exit() 被调用,然后返回exit() 设置的值(如果exit() 通过quit() 被调用,则返回值为 0)。
必须调用该函数才能开始事件处理。主事件循环从窗口系统接收事件,并将这些事件分派给应用程序部件。
一般情况下,在调用 exec() 之前不会有任何用户交互。作为特例,在调用 exec() 之前可以使用QMessageBox 等模式部件,因为模式部件调用 exec() 会启动本地事件循环。
要使应用程序执行空闲处理(即在没有待处理事件时执行特殊函数),可使用超时为 0ns 的QChronoTimer 。使用processEvents() 可以实现更高级的空闲处理方案。
我们建议您将清理代码连接到aboutToQuit() 信号,而不是放在应用程序的main()
函数中。这是因为在某些平台上,QApplication::exec() 调用可能不会返回。例如,在 Windows 平台上,当用户注销时,系统会在 Qt 关闭所有顶层窗口后终止进程。因此,在调用 QApplication::exec() 之后,无法保证应用程序有时间退出事件循环并在main()
函数末尾执行代码。
另请参阅 quitOnLastWindowClosed,QCoreApplication::quit(),QCoreApplication::exit(),QCoreApplication::processEvents() 和QCoreApplication::exec().
[signal]
void QApplication::focusChanged(QWidget *old, QWidget *now)
当键盘焦点所在的窗口小部件从old 变为now 时,即用户按下制表符键、点击窗口小部件或更改活动窗口时,就会发出该信号。old 和now 都可以是nullptr
。
该信号是在两个窗口部件都通过QFocusEvent 收到更改通知后发出的。
另请参阅 QWidget::setFocus(),QWidget::clearFocus() 和Qt::FocusReason 。
[static]
QWidget *QApplication::focusWidget()
返回拥有键盘输入焦点的应用程序部件,如果此应用程序中没有部件拥有焦点,则返回nullptr
。
另请参阅 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)
这是一个重载函数。
返回给定className 的 widget 的字体。
另请参阅 setFont() 和QWidget::font()。
[static]
bool QApplication::isEffectEnabled(Qt::UIEffect effect)
如果启用了effect ,则返回true
;否则返回false
。
默认情况下,Qt 会尝试使用桌面设置。要阻止这种情况,请调用 setDesktopSettingsAware(false)。
注意: 在色彩深度小于 16 位的屏幕上,所有特效都将被禁用。
另请参阅 setEffectEnabled() 和Qt::UIEffect 。
[static]
Qt::NavigationMode QApplication::navigationMode()
返回 Qt 正在使用的焦点导航类型。
此功能仅在 Qt for Embedded Linux 中可用。
另请参阅 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)
这是一个重载函数。
返回给定className 的 widget 的调色板。
另请参阅 setPalette() 和QWidget::palette()。
[static]
void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)
如果enable 为 true,则启用用户界面特效effect ,否则将不使用该特效。
注意: 在色彩深度小于 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 中可用。
另请参阅 navigationMode() 。
[static]
void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
将应用程序调色板更改为palette 。
如果通过className ,则更改仅适用于继承className 的部件(如QObject::inherits() 所报告)。如果className 留为 0,则更改会影响所有部件,从而覆盖先前设置的任何特定类的调色板。
调色板可根据QStyle::polish() 中的当前图形用户界面风格进行更改。
警告 请勿将此函数与Qt 样式表结合使用。使用样式表时,可使用 "color"、"background-color"、"selection-color"、"selection-background-color "和 "alternate-background-color "自定义部件的调色板。
注意: 有些样式不会在所有绘图中使用调色板,例如,如果它们使用本地主题引擎。Windows Vista 和 macOS 风格就是这种情况。
另请参阅 QWidget::setPalette()、palette() 和QStyle::polish()。
[static]
void QApplication::setStyle(QStyle *style)
将应用程序的图形用户界面样式设置为style 。样式对象的所有权将转移到QApplication ,因此QApplication 将在应用程序退出或设置了新样式而旧样式仍是应用程序对象的父对象时删除样式对象。
使用示例
QApplication::setStyle(QStyleFactory::create("Fusion"));
切换应用程序样式时,调色板会设置回初始颜色或系统默认颜色。这是必要的,因为某些样式必须调整调色板才能完全符合样式指南的要求。
在调色板设置之前设置样式,即在创建QApplication 之前,会导致应用程序使用QStyle::standardPalette() 来设置调色板。
警告: 目前,自定义QStyle 子类不支持 Qt XML 样式表。我们计划在未来的版本中解决这个问题。
另请参阅 style()、QStyle 、setPalette() 和desktopSettingsAware()。
[static]
QStyle *QApplication::setStyle(const QString &style)
这是一个重载函数。
从QStyleFactory 请求style 的QStyle 对象。
字符串必须是QStyleFactory::keys() 中的一个,通常是 "windows"、"windowsvista"、"fusion "或 "macos "中的一个。样式名称不区分大小写。
如果传递的是未知的style ,则返回nullptr
,否则返回的QStyle 对象将被设置为应用程序的图形用户界面样式。
警告 为确保正确设置应用程序的样式,最好尽可能在QApplication 构造函数之前调用此函数。
[static]
QStyle *QApplication::style()
返回应用程序的样式对象。
[static]
QWidget *QApplication::topLevelAt(const QPoint &point)
返回给定point 上的顶级 widget;如果没有此类 widget,则返回nullptr
。
[static]
QWidget *QApplication::topLevelAt(int x, int y)
这是一个重载函数。
返回点 (x,y) 上的顶层 widget;如果没有该 widget,则返回 0。
[static]
QWidgetList QApplication::topLevelWidgets()
返回应用程序中顶层部件(窗口)的列表。
注意: 某些顶层窗口部件可能会被隐藏,例如当前未显示工具提示的工具提示。
举例说明
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)
返回位于全局屏幕位置point 的 Widget,如果该位置没有 Qt Widget,则返回nullptr
。
此函数运行速度可能较慢。
另请参阅 QCursor::pos()、QWidget::grabMouse() 和QWidget::grabKeyboard()。
[static]
QWidget *QApplication::widgetAt(int x, int y)
这是一个重载函数。
返回全局屏幕位置(x,y )上的 Widget,如果没有 Qt Widget,则返回nullptr
。
宏文档
qApp
指向唯一应用程序对象的全局指针。它等同于QCoreApplication::instance() ,但被转换为QApplication 指针,因此只有当唯一应用对象是QApplication 时才有效。
另请参阅 QCoreApplication::instance() 和qGuiApp 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.