QGuiApplication 类

QGuiApplication 类管理 GUI 应用程序的控制流和主要设置。 更多...

头: #include <QGuiApplication>
qmake: QT += gui
Since: Qt 5.0
继承: QCoreApplication
继承者:

QApplication

特性

公共函数

QGuiApplication (int & argc , char ** argv )
virtual ~QGuiApplication ()
qreal devicePixelRatio () const
bool isSavingSession () const
bool isSessionRestored () const
QString sessionId () const
QString sessionKey () const

重实现公共函数

virtual bool notify (QObject * object , QEvent * event )

信号

void applicationDisplayNameChanged ()
void applicationStateChanged (Qt::ApplicationState state )
void commitDataRequest (QSessionManager & manager )
void focusObjectChanged (QObject * focusObject )
void focusWindowChanged (QWindow * focusWindow )
void fontDatabaseChanged ()
void lastWindowClosed ()
void layoutDirectionChanged (Qt::LayoutDirection direction )
void paletteChanged (const QPalette & palette )
void primaryScreenChanged (QScreen * screen )
void saveStateRequest (QSessionManager & manager )
void screenAdded (QScreen * screen )
void screenRemoved (QScreen * screen )

静态公共成员

QWindowList allWindows ()
QString applicationDisplayName ()
Qt::ApplicationState applicationState ()
void changeOverrideCursor (const QCursor & cursor )
QClipboard * clipboard ()
QString desktopFileName ()
bool desktopSettingsAware ()
int exec ()
QObject * focusObject ()
QWindow * focusWindow ()
QFont font ()
QInputMethod * inputMethod ()
bool isFallbackSessionManagementEnabled ()
bool isLeftToRight ()
bool isRightToLeft ()
Qt::KeyboardModifiers keyboardModifiers ()
Qt::LayoutDirection layoutDirection ()
QWindow * modalWindow ()
Qt::MouseButtons mouseButtons ()
QCursor * overrideCursor ()
QPalette palette ()
QFunctionPointer platformFunction (const QByteArray & function )
QString platformName ()
QPlatformNativeInterface * platformNativeInterface ()
QScreen * primaryScreen ()
Qt::KeyboardModifiers queryKeyboardModifiers ()
bool quitOnLastWindowClosed ()
void restoreOverrideCursor ()
QList<QScreen *> screens ()
void setApplicationDisplayName (const QString & name )
void setDesktopFileName (const QString & name )
void setDesktopSettingsAware (bool on )
void setFallbackSessionManagementEnabled (bool enabled )
void setFont (const QFont & font )
void setLayoutDirection (Qt::LayoutDirection direction )
void setOverrideCursor (const QCursor & cursor )
void setPalette (const QPalette & pal )
void setQuitOnLastWindowClosed (bool quit )
void setWindowIcon (const QIcon & icon )
QStyleHints * styleHints ()
void sync ()
QWindow * topLevelAt (const QPoint & pos )
QWindowList topLevelWindows ()
QIcon windowIcon ()

重实现保护函数

virtual bool event (QEvent * e )

qGuiApp

额外继承成员

详细描述

QGuiApplication 类管理 GUI 应用程序的控制流和主要设置。

QGuiApplication contains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization, and provides session management. In addition, QGuiApplication handles most of the system-wide and application-wide settings.

对于使用 QT 的任何 GUI 应用程序,准确存在 one QGuiApplication object no matter whether the application has 0, 1, 2 or more windows at any given time. For non-GUI Qt applications, use QCoreApplication 代替,因为它不依赖 Qt GUI 模块。对于 QWidget 基 Qt 应用程序,使用 QApplication 代替,因为由它提供的某些功能需要创建 QWidget 实例。

QGuiApplication 对象是可访问的透过 instance () 函数,返回指针相当于全局 qApp 指针。

QGuiApplication 主要负责的领域:

  • 采用用户桌面设置初始化应用程序,譬如 palette (), font () 和 styleHints ()。它对这些特性保持追踪,若用户全局更改桌面,例如透过某种控制面板。
  • 它履行事件处理,意味着它接收来自底层窗口系统的事件并将它们分派给相关 Widget。可以将自己的事件发送给窗口通过使用 sendEvent () 和 postEvent ().
  • 它剖析常见命令行自变量从而设置其内部状态。见 构造函数文档编制 下文了解更多细节。
  • 它提供用户可见的字符串本地化凭借 translate ().
  • 它提供某些魔法对象,像 clipboard ().
  • 它知道有关应用程序的窗口。可以询问在某个位置是哪个窗口使用 topLevelAt (),获取列表为 topLevelWindows (),等。
  • 它管理应用程序的鼠标光标处理,见 setOverrideCursor ()
  • 它提供支持对于复杂 会话管理 。这使应用程序能够在用户注销时优雅终止,若不可能终止,可以取消关闭进程,甚至保留整个应用程序的状态对于将来的会话。见 isSessionRestored (), sessionId () 和 commitDataRequest () 和 saveStateRequest () 了解细节。

由于 QGuiApplication 对象会做如此多的初始化,它 must 被创建,在创建用户界面相关的任何其它对象之前。 QGuiApplication 还处理常见命令行自变量。因此,创建它通常是一个好主意 before 任何解释或修改对于 argv 的履行在应用程序本身。

函数组
系统设置 desktopSettingsAware (), setDesktopSettingsAware (), styleHints (), palette (), setPalette (), font (), setFont ().
事件处理 exec (), processEvents (), exit (), quit (). sendEvent (), postEvent (), sendPostedEvents (), removePostedEvents (), hasPendingEvents(), notify ().
Windows allWindows (), topLevelWindows (), focusWindow (), clipboard (), topLevelAt ().
高级光标处理 overrideCursor (), setOverrideCursor (), restoreOverrideCursor ().
会话管理 isSessionRestored (), sessionId (), commitDataRequest (), saveStateRequest ().
杂项 startingUp (), closingDown ().

另请参阅 QCoreApplication , QAbstractEventDispatcher ,和 QEventLoop .

特性文档编制

applicationDisplayName : QString

此特性保持此应用程序的用户可见名称

此名称将展示给用户,例如在窗口标题中。 可以翻译它,若有必要。

若未设置,应用程序显示名称默认为应用程序名称。

该特性在 Qt 5.0 引入。

访问函数:

QString applicationDisplayName ()
void setApplicationDisplayName (const QString & name )

通知程序信号:

void applicationDisplayNameChanged ()

另请参阅 applicationName .

desktopFileName : QString

此特性保持用于此应用程序桌面条目的基本名称

这是表示此应用程序桌面条目的文件名 (不带完整路径),根据 freedesktop 桌面条目规范。

此特性给出什么桌面条目表示应用程序的精密指示,且窗口系统需要在不求助于不精密试探的情况下检索这种信息。

可以获得最新版本的 freedesktop 桌面条目规范 here .

该特性在 Qt 5.7 引入。

访问函数:

QString desktopFileName ()
void setDesktopFileName (const QString & name )

layoutDirection : Qt::LayoutDirection

此特性保持用于此应用程序的默认布局方向

当系统启动时,默认布局方向从属应用程序的语言。

通知信号在 Qt 5.4 引入。

访问函数:

Qt::LayoutDirection layoutDirection ()
void setLayoutDirection (Qt::LayoutDirection direction )

通知程序信号:

void layoutDirectionChanged (Qt::LayoutDirection direction )

另请参阅 QWidget::layoutDirection , isLeftToRight (),和 isRightToLeft ().

platformName : const QString

This property holds the name of the underlying platform plugin.

The QPA platform plugins are located in qtbase\src\plugins\platforms . At the time of writing, the following platform plugin names are supported:

  • android
  • cocoa 是 macOS 平台插件。
  • directfb
  • eglfs is a platform plugin for running Qt5 applications on top of EGL and OpenGL ES 2.0 without an actual windowing system (like X11 or Wayland). For more information, see EGLFS .
  • ios (also used for tvOS)
  • kms is an experimental platform plugin using kernel modesetting and DRM (Direct Rendering Manager).
  • linuxfb writes directly to the framebuffer. For more information, see LinuxFB .
  • minimal is provided as an examples for developers who want to write their own platform plugins. However, you can use the plugin to run GUI applications in environments without a GUI, such as servers.
  • minimalegl is an example plugin.
  • offscreen
  • openwfd
  • qnx
  • windows
  • xcb is the X11 plugin used on regular desktop Linux platforms.

For more information about the platform plugins for embedded Linux devices, see Qt for Embedded Linux .

访问函数:

QString platformName ()

primaryScreen : QScreen * const

此特性保持应用程序的首要 (或默认) 屏幕。

这将是最初展示 QWindows 的屏幕,除非另有指定。

primaryScreenChanged 信号在 Qt 5.6 引入。

访问函数:

QScreen * primaryScreen ()

通知程序信号:

void primaryScreenChanged (QScreen * screen )

另请参阅 screens ().

quitOnLastWindowClosed : bool

此特性保持应用程序是否隐式离开,当最后窗口被关闭时。

默认为 true .

若此特性为 true ,应用程序离开,当最后可见首要窗口 (即:窗口没有父级) 被关闭时。

访问函数:

bool quitOnLastWindowClosed ()
void setQuitOnLastWindowClosed (bool quit )

另请参阅 quit () 和 QWindow::close ().

windowIcon : QIcon

此特性保持默认窗口图标

访问函数:

QIcon windowIcon ()
void setWindowIcon (const QIcon & icon )

另请参阅 QWindow::setIcon () 和 设置应用程序图标 .

成员函数文档编制

QGuiApplication:: QGuiApplication ( int & argc , char ** argv )

初始化窗口系统并构造应用程序对象采用 argc 命令行自变量在 argv .

警告: 数据的引用通过 argc and argv must stay valid for the entire lifetime of the QGuiApplication object. In addition, argc 必须大于 0 且 argv 必须包含至少一有效字符串。

全局 qApp 指针引用此应用程序对象。只应创建一个应用程序对象。

此应用程序对象必须被构造先于任何 描绘设备 (including pixmaps, bitmaps etc.).

注意: argc and argv 可能改变当 Qt 移除它识别的命令行自变量时。

Supported Command Line Options

All Qt programs automatically support a set of command-line options that allow modifying the way Qt will interact with the windowing system. Some of the options are also accessible via environment variables, which are the preferred form if the application can launch GUI sub-processes or other applications (environment variables will be inherited by child processes). When in doubt, use the environment variables.

The options currently supported are the following:

  • -platform platformName [:options] , specifies the Qt Platform Abstraction (QPA) plugin.

    Overridden by the QT_QPA_PLATFORM 环境变量。

  • -platformpluginpath path , specifies the path to platform plugins.

    Overridden by the QT_QPA_PLATFORM_PLUGIN_PATH 环境变量。

  • -platformtheme platformTheme , specifies the platform theme.

    Overridden by the QT_QPA_PLATFORMTHEME 环境变量。

  • -plugin plugin , specifies additional plugins to load. The argument may appear multiple times.

    Overridden by the QT_QPA_GENERIC_PLUGINS 环境变量。

  • -qmljsdebugger= , activates the QML/JS debugger with a specified port. The value must be of format port:1234 [,block] ,其中 block is optional and will make the application wait until a debugger connects to it.
  • -qwindowgeometry geometry , specifies window geometry for the main window using the X11-syntax. For example: -qwindowgeometry 100x100+50+50
  • -qwindowicon , sets the default window icon
  • -qwindowtitle , sets the title of the first window
  • -reverse , sets the application's layout direction to Qt::RightToLeft . This option is intended to aid debugging and should not be used in production. The default value is automatically detected from the user's locale (see also QLocale::textDirection ()).
  • -session session , restores the application from an earlier session .

The following standard command line options are available for X11:

  • -display hostname:screen_number , switches displays on X11.

    Overrides the DISPLAY 环境变量。

  • -geometry geometry , same as -qwindowgeometry .

Platform-Specific Arguments

You can specify platform-specific arguments for the -platform option. Place them after the platform plugin name following a colon as a comma-separated list. For example, -platform windows:dialogs=xp,fontengine=freetype .

The following parameters are available for -platform windows :

  • dialogs=[xp|none] , xp uses XP-style native dialogs and none disables them.
  • fontengine=freetype , uses the FreeType font engine.

For more information about the platform-specific arguments available for embedded Linux platforms, see Qt for Embedded Linux .

另请参阅 arguments () 和 QGuiApplication::platformName .

[virtual] QGuiApplication:: ~QGuiApplication ()

销毁应用程序。

[static] QWindowList QGuiApplication:: allWindows ()

Returns a list of all the windows in the application.

The list is empty if there are no windows.

另请参阅 topLevelWindows ().

[static] Qt::ApplicationState QGuiApplication:: applicationState ()

返回应用程序的当前状态。

可以对应用程序状态改变做出反应,以履行譬如:停止/再继续 CPU 密集型任务、释放/加载资源、或保存/还原应用程序数据。

该函数在 Qt 5.2 引入。

[signal] void QGuiApplication:: applicationStateChanged ( Qt::ApplicationState state )

此信号被发射当 state 对于应用程序改变。

该函数在 Qt 5.2 引入。

另请参阅 applicationState ().

[static] void QGuiApplication:: changeOverrideCursor (const QCursor & cursor )

将当前活动应用程序的覆盖光标改为 cursor .

此函数不起作用若 setOverrideCursor () 未被调用。

另请参阅 setOverrideCursor (), overrideCursor (), restoreOverrideCursor (),和 QWidget::setCursor ().

[static] QClipboard *QGuiApplication:: clipboard ()

返回与剪贴板进行交互的对象。

[signal] void QGuiApplication:: commitDataRequest ( QSessionManager & manager )

此信号处理 会话管理 。它被发射当 QSessionManager 想要应用程序提交其所有数据。

通常这意味着保存所有打开文件,在从用户获得权限后。此外,可能想要提供由用户可以取消关闭的手段。

不应退出应用程序,在此信号内。相反,会话管理器可以 (或不可以) 之后这样做,从属上下文。

警告: 在此信号内,用户交互是不可能的, unless 要求 manager 明确权限。见 QSessionManager::allowsInteraction () 和 QSessionManager::allowsErrorInteraction () 了解细节和范例用法。

注意: 应使用 Qt::DirectConnection 当连接到此信号时。

该函数在 Qt 4.2 引入。

另请参阅 setFallbackSessionManagementEnabled (), isSessionRestored (), sessionId (), saveStateRequest (),和 会话管理 .

[static] bool QGuiApplication:: desktopSettingsAware ()

返回 true 若 Qt 被设为使用系统标准颜色、字体、等;否则返回 false 。默认为 true .

另请参阅 setDesktopSettingsAware ().

qreal QGuiApplication:: devicePixelRatio () const

Returns the highest screen device pixel ratio found on the system. This is the ratio between physical pixels and device-independent pixels.

Use this function only when you don't know which window you are targeting. If you do know the target window, use QWindow::devicePixelRatio () 代替。

另请参阅 QWindow::devicePixelRatio ().

[virtual protected] bool QGuiApplication:: event ( QEvent * e )

重实现自 QObject::event ().

[static] int QGuiApplication:: exec ()

进入主事件循环并等待,直到 exit () 被调用,然后将设置值返回给 exit () (其为 0 若 exit () 被调用凭借 quit ()).

有必要调用此函数以启动事件处理。主事件循环从窗口系统接收事件,并将其分派给应用程序 Widget。

一般来说,不可以进行用户交互在调用 exec() 之前。

要使应用程序履行空闲处理 (如:执行特殊函数每当没有待处理事件时),使用 QTimer 采用 0 超时。更高级空闲处理方案可以达成使用 processEvents ().

推荐把清理代码连接到 aboutToQuit() 信号,而不是将它放入应用程序的 main() 函数。这是因为,在某些平台, QApplication::exec () 调用可能不返回。

另请参阅 quitOnLastWindowClosed , quit (), exit (), processEvents (),和 QCoreApplication::exec ().

[static] QObject *QGuiApplication:: focusObject ()

返回 QObject 在当前活动窗口中,将是聚焦相关事件的最终接收者,譬如:键事件。

[signal] void QGuiApplication:: focusObjectChanged ( QObject * focusObject )

此信号被发射当聚焦相关事件的最终接收者改变时。 focusObject 是新接收者。

另请参阅 focusObject ().

[static] QWindow *QGuiApplication:: focusWindow ()

返回 QWindow 接收聚焦相关事件,譬如:键事件。

[signal] void QGuiApplication:: focusWindowChanged ( QWindow * focusWindow )

此信号被发射,当聚焦窗口改变时。 focusWindow 是新聚焦窗口。

另请参阅 focusWindow ().

[static] QFont QGuiApplication:: font ()

返回默认的应用程序字体。

另请参阅 setFont ().

[signal] void QGuiApplication:: fontDatabaseChanged ()

此信号被发射当应用程序字体被加载或移除时。

另请参阅 QFontDatabase::addApplicationFont (), QFontDatabase::addApplicationFontFromData (), QFontDatabase::removeAllApplicationFonts (),和 QFontDatabase::removeApplicationFont ().

[static] QInputMethod *QGuiApplication:: inputMethod ()

返回输入法。

The input method returns properties about the state and position of the virtual keyboard. It also provides information about the position of the current focused input element.

另请参阅 QInputMethod .

[static] bool QGuiApplication:: isFallbackSessionManagementEnabled ()

Returns whether QGuiApplication will use fallback session management.

默认为 true .

若这为 true and the session manager allows user interaction, QGuiApplication will try to close toplevel windows after commitDataRequest () has been emitted. If a window cannot be closed, session shutdown will be canceled and the application will keep running.

Fallback session management only benefits applications that have an "are you sure you want to close this window?" feature or other logic that prevents closing a toplevel window depending on certain conditions, and that do nothing to explicitly implement session management. In applications that do implement session management using the proper session management API, fallback session management interferes and may break session management logic.

警告: If all windows are closed due to fallback session management and quitOnLastWindowClosed () 是 true , the application will quit before it is explicitly instructed to quit through the platform's session management protocol. That violation of protocol may prevent the platform session manager from saving application state.

该函数在 Qt 5.6 引入。

另请参阅 setFallbackSessionManagementEnabled (), QSessionManager::allowsInteraction (), saveStateRequest (), commitDataRequest (),和 会话管理 .

[static] bool QGuiApplication:: isLeftToRight ()

返回 true 若应用程序的布局方向是 Qt::LeftToRight ;否则返回 false .

另请参阅 layoutDirection () 和 isRightToLeft ().

[static] bool QGuiApplication:: isRightToLeft ()

返回 true 若应用程序的布局方向是 Qt::RightToLeft ;否则返回 false .

另请参阅 layoutDirection () 和 isLeftToRight ().

bool QGuiApplication:: isSavingSession () const

返回 true 若应用程序目前正在保存 session ;否则返回 false .

This is true when commitDataRequest () 和 saveStateRequest () are emitted, but also when the windows are closed afterwards by session management.

该函数在 Qt 5.0 引入。

另请参阅 sessionId (), commitDataRequest (),和 saveStateRequest ().

bool QGuiApplication:: isSessionRestored () const

返回 true 若应用程序已还原从较早 session ;否则返回 false .

另请参阅 sessionId (), commitDataRequest (),和 saveStateRequest ().

[static] Qt::KeyboardModifiers QGuiApplication:: keyboardModifiers ()

返回键盘修饰符键的当前状态。当前状态会被同步更新,当事件队列中的自发改变键盘状态的事件被清空时 ( QEvent::KeyPress and QEvent::KeyRelease 事件)。

应注意,这可能不反映调用时在输入设备上保持的实际键,但反映上述事件之一最后报告的修饰符。若没有保持键, Qt::NoModifier 被返回。

另请参阅 mouseButtons () 和 queryKeyboardModifiers ().

[signal] void QGuiApplication:: lastWindowClosed ()

此信号被发射从 exec () 当最后可见首要窗口 (即:窗口没有父级) 被关闭时。

默认情况下, QGuiApplication 离开在此信号被发射之后。可以关闭此特征通过设置 quitOnLastWindowClosed to false .

另请参阅 QWindow::close () 和 QWindow::isTopLevel ().

返回最近展示的模态窗口。若没有可见的模态窗口,此函数返回 0。

A modal window is a window which has its modality property set to Qt::WindowModal or Qt::ApplicationModal . A modal window must be closed before the user can continue with other parts of the program.

Modal window are organized in a stack. This function returns the modal window at the top of the stack.

另请参阅 Qt::WindowModality and QWindow::setModality ().

[static] Qt::MouseButtons QGuiApplication:: mouseButtons ()

Returns the current state of the buttons on the mouse. The current state is updated syncronously as the event queue is emptied of events that will spontaneously change the mouse state ( QEvent::MouseButtonPress and QEvent::MouseButtonRelease 事件)。

It should be noted this may not reflect the actual buttons held on the input device at the time of calling but rather the mouse buttons as last reported in one of the above events. If no mouse buttons are being held Qt::NoButton 被返回。

另请参阅 keyboardModifiers ().

[virtual] bool QGuiApplication:: notify ( QObject * object , QEvent * event )

重实现自 QCoreApplication::notify ().

[static] QCursor *QGuiApplication:: overrideCursor ()

返回活动应用程序的覆盖光标。

This function returns 0 if no application cursor has been defined (i.e. the internal cursor stack is empty).

另请参阅 setOverrideCursor () 和 restoreOverrideCursor ().

[static] QPalette QGuiApplication:: palette ()

Returns the default application palette.

另请参阅 setPalette ().

[signal] void QGuiApplication:: paletteChanged (const QPalette & palette )

此信号被发射当 palette 对于应用程序改变。

该函数在 Qt 5.4 引入。

另请参阅 palette ().

[static] QFunctionPointer QGuiApplication:: platformFunction (const QByteArray & function )

返回的函数指针来自 platformplugin 匹配 function

[static] QPlatformNativeInterface *QGuiApplication:: platformNativeInterface ()

返回平台本机接口,用于特定平台功能。

[static] Qt::KeyboardModifiers QGuiApplication:: queryKeyboardModifiers ()

查询并返回键盘修饰符键的状态。不像 keyboardModifiers 此方法返回调用方法时保持在输入设备上的实际键。

它不依赖由此进程已接收的键按下事件,譬如:这使得当移动窗口时校验修饰符成为可能。注意:在大多数情况下,应使用 keyboardModifiers (),其更快更准确,因为它包含的修饰符状态 (如同接收当前处理事件时状态)。

另请参阅 keyboardModifiers ().

[static] void QGuiApplication:: restoreOverrideCursor ()

撤消最后 setOverrideCursor ().

setOverrideCursor () 被调用 2 次,调用 restoreOverrideCursor() 将激活第 1 次光标设置。第 2 次调用此函数将还原 Widget 的原始光标。

另请参阅 setOverrideCursor () 和 overrideCursor ().

[signal] void QGuiApplication:: saveStateRequest ( QSessionManager & manager )

此信号处理 会话管理 。它被援引当 会话管理器 想要应用程序为未来会话保留其状态。

For example, a text editor would create a temporary file that includes the current contents of its edit buffers, the location of the cursor and other aspects of the current editing session.

You should never exit the application within this signal. Instead, the session manager may or may not do this afterwards, depending on the context. Futhermore, most session managers will very likely request a saved state immediately after the application has been started. This permits the session manager to learn about the application's restart policy.

警告: 在此信号内,用户交互是不可能的, unless 要求 manager 明确权限。见 QSessionManager::allowsInteraction () 和 QSessionManager::allowsErrorInteraction () 了解细节。

注意: 应使用 Qt::DirectConnection 当连接到此信号时。

该函数在 Qt 4.2 引入。

另请参阅 isSessionRestored (), sessionId (), commitDataRequest (),和 会话管理 .

[signal] void QGuiApplication:: screenAdded ( QScreen * screen )

此信号被发射每当新屏幕 screen 已添加到系统。

另请参阅 screens (), primaryScreen ,和 screenRemoved ().

[signal] void QGuiApplication:: screenRemoved ( QScreen * screen )

此信号被发射每当 screen 被移除从系统。它提供了管理屏幕窗口的机会,在 Qt 回退以将它们移到首要屏幕之前。

该函数在 Qt 5.4 引入。

另请参阅 screens (), screenAdded (), QObject::destroyed (),和 QWindow::setScreen ().

[static] QList < QScreen *> QGuiApplication:: screens ()

返回应用程序连接到的窗口系统,所关联的所有屏幕的列表。

QString QGuiApplication:: sessionId () const

返回当前 会话的 标识符。

If the application has been restored from an earlier session, this identifier is the same as it was in that previous session. The session identifier is guaranteed to be unique both for different applications and for different instances of the same application.

另请参阅 isSessionRestored (), sessionKey (), commitDataRequest (),和 saveStateRequest ().

QString QGuiApplication:: sessionKey () const

返回会话键,在当前 session .

If the application has been restored from an earlier session, this key is the same as it was when the previous session ended.

The session key changes every time the session is saved. If the shutdown process is cancelled, another session key will be used when shutting down again.

另请参阅 isSessionRestored (), sessionId (), commitDataRequest (),和 saveStateRequest ().

[static] void QGuiApplication:: setDesktopSettingsAware ( bool on )

将 Qt 是否应使用系统标准颜色、字体等设为 on 。默认情况下,这是 true .

此函数必须先被调用才创建 QGuiApplication 对象,像这样:

int main(int argc, char *argv[])
{
    QApplication::setDesktopSettingsAware(false);
    QApplication app(argc, argv);
    ...
    return app.exec();
}
					

另请参阅 desktopSettingsAware ().

[static] void QGuiApplication:: setFallbackSessionManagementEnabled ( bool enabled )

Sets whether QGuiApplication will use fallback session management to enabled .

该函数在 Qt 5.6 引入。

另请参阅 isFallbackSessionManagementEnabled ().

[static] void QGuiApplication:: setFont (const QFont & font )

把默认应用程序字体改为 font .

另请参阅 font ().

[static] void QGuiApplication:: setOverrideCursor (const QCursor & cursor )

将应用程序覆盖光标设为 cursor .

应用程序覆盖光标旨在向用户展示应用程序处于特殊状态,例如:在可能需要一些时间的操作期间。

此光标将显示在所有应用程序的 Widget 中,直到 restoreOverrideCursor () 或另一 setOverrideCursor() 被调用。

应用程序光标存储在内部堆栈中。setOverrideCursor() 将光标压入堆栈,而 restoreOverrideCursor () 将活动光标从堆栈中弹出。 changeOverrideCursor () changes the curently active application override cursor.

每个 setOverrideCursor() 之后最终必须跟随相应 restoreOverrideCursor (),否则,将从不清空堆栈。

范例:

QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
calculateHugeMandelbrot();              // lunch time...
QApplication::restoreOverrideCursor();
					

另请参阅 overrideCursor (), restoreOverrideCursor (), changeOverrideCursor (),和 QWidget::setCursor ().

[static] void QGuiApplication:: setPalette (const QPalette & pal )

Changes the default application palette to pal .

另请参阅 palette ().

[static] QStyleHints *QGuiApplication:: styleHints ()

返回应用程序的样式提示。

样式提示封装了一组从属平台特性,譬如:双击间隔、全宽选定、等。

提示可以用于与底层平台更紧密集成。

另请参阅 QStyleHints .

[static] void QGuiApplication:: sync ()

可以用于将 Qt 状态和窗口系统状态同步的函数。

此函数将首先清空 Qt 事件通过调用 QCoreApplication::processEvents (),然后平台插件同步窗口系统,最后交付 Qt 事件通过另一调用 QCoreApplication::processEvents ();

此函数很耗时,且不鼓励使用它。

该函数在 Qt 5.2 引入。

[static] QWindow *QGuiApplication:: topLevelAt (const QPoint & pos )

返回顶层窗口在给定位置 pos ,若有的话。

[static] QWindowList QGuiApplication:: topLevelWindows ()

返回应用程序顶层窗口列表。

另请参阅 allWindows ().

宏文档编制

qGuiApp

引用唯一应用程序对象的全局指针。才可有效使用当对象是 QGuiApplication .

另请参阅 QCoreApplication::instance () 和 qApp .