类介绍
QGuiApplication类管理GUI应用程序的控制流和主要设置。QGuiApplication包含主事件循环,处理和调度来自窗口系统和其他源的所有事件。它还处理应用程序的初始化和最终化,并提供会话管理。同时,还处理大多数系统范围内和应用程序范围内的设置。
QGuiApplication主要职责范围:
-
使用用户的桌面设置初始化应用程序,例如palette(),font()等。以及跟踪这些属性,防止用户通过控制面板更改桌面。
-
执行事件处理,从底层窗口系统接收事件,并将他们分配到相关的类中。
-
解析常见的命令行参数,并设置其内部状态。
-
提供用户可以通过翻译看到的字符串本地化。
-
提供一些特殊的对象,比如剪切板等。
-
管理应用程序窗口。
-
管理应用程序的鼠标光标处理。
-
提供复杂的会话管理。
属性
applicationDisplayName:QString
应用程序的用户可见名称。该名称显示给用户,例如在窗口标题栏中,如果有必要,可以翻译。如果没有设置,则默认应用程序名称为显示名称。
- QString applicationDisplayName()
- void setApplicationDisplayName(const QString &name)
- [signal] void applicationDisplayNameChanged()
desktopFileName:QString
此属性保存应用程序的桌面项的基本名称。
- QString desktopFileName()
- void setDesktopFileName()
layoutDirection:Qt::LayoutDirection
这个属性保留了应用程序的默认布局方向。系统启动时,默认布局方向取决于应用程序的语言。
- Qt::LayoutDirection layoutDirection()
- void setLayoutDirection(Qt::LayoutDirection direction)
- [signal] layoutDirectionChanged(Qt::LayoutDirection direction)
platformName:const QString
这个属性包含了基础平台插件的名称。
- QString platformName()
primaryScreen:QScreen* const
这个属性保留应用程序的主屏幕。
- QScreen *primaryScreen()
- [signal] void primaryScreenChanged(QScreen *screen)
quitOnLastWindowClosed:bool
此属性保留应用程序是否在最后一个窗口关闭时隐式退出。默认为true。表示应用程序在最后一个可见窗口关闭时退出。
windowIcon:QIcon
这个属性保存了默认窗口图标。
- QIcon windowIcon()
- void setWindowIcon(const QIcon &icon)
成员函数
[static] QWindowList QGuiApplication::allWindows()
返回应用程序所有窗口列表。
[static] Qt::ApplicationState QGuiApplication::applicationState()
返回应用程序的当前状态。
[signal] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)
当应用程序状态改变时,发出该信号。
[static] void QGuiApplication::changeOverrideCursor(const QCursor &cursor)
将当前应用程序覆盖的光标更改为cursor。如果没有调用setOverrideCursor(),则此函数无效。
[static] QClipboard *QGuiApplication::clipboard()
返回用于与剪切板交互的对象。
[signal] void QGuiApplication::commitDataRequest(QSessionManager *manager)
此信号设置会话管理。当QSessionManager希望应用程序提交其所有数据时,就会发出它。
[static] bool QGuiApplication::desktopSettingsAware()
如果Qt设置为使用系统的标准颜色,字体等,则返回true,否则返回false。默认是true。
qreal QGuiApplication::devicePixelRatio() const
返回系统上找到的最高屏幕设备像素比率。这是物理像素和设备无关像素之间的比率。只有你不知道要瞄准哪个窗口时,使用本功能。如果你知道目标窗口,请使用QWindow::devicePixelRatio()。
[override virtual protected] bool QGuiApplication::event(QEvent *e)
重新实现QCoreApplication::event()。
[static] int QGuiApplication::exec()
开启主线程事件循环。
[static] QObject *QGuiApplication::focusObject()
返回当前活动窗口的QObject。它将是绑定到焦点事件的最终接收者。
[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)
当与焦点相关事件的最终接收者改变时,发出该信号。focusObject是新的接收者。
[static] QWindow *QGuiApplication::focusWindow()
返回接收与焦点相关事件的QWindow。
[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)
当与焦点相关事件的接收窗口改变时,发出该信号。
[static] QFont QGuiApplication::font()
返回默认的应用程序字体。
[signal] void QGuiApplication::fontChanged(const QFont &font)
当应用程序字体改变时,发出该信号。
[signal] void QGuiApplication::fontDatabaseChanged()
这个信号在加载或删除应用程序字体时发出。
[static] QInputMethod *QGuiApplication::inputMethod()
返回输入法。输入法返回有关虚拟键盘的状态和位置信息。它还提供了关于当前聚焦的输入元件的位置信息。
[static] bool QGuiApplication::isFallbackSessionManagementEnabled()
返回QGuiApplication是否将使用回退会话管理。默认为true。
[static] bool QGuiApplication::isLeftToRight()
如果应用程序布局是Qt::LeftToRight,则返回true,否则返回false。
[static] bool QGuiApplication::isRightToLeft()
如果应用程序布局是Qt::RightToLeft,则返回true,否则返回false。
bool QGuiApplication::isSavingSession() const
如果应用程序当前正在保存会话,则返回true,否则返回false。
bool QGuiApplication::isSessionRestored() const
如果应用程序从早期会话中恢复,则返回true,否则返回false。
[static] Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()
返回键盘上修改器的当前状态。当前状态会同步更新。
[signal] void QGuiApplication::lastWindowClosed()
当最后一个可见的主窗口关闭时,该信号从exec()发出。默认情况下,QGuiApplication发出此信号后退出。可以通过设置quitOnLastWindowClosed为false关闭此功能。
[static] QWindow *QGuiApplication::modalWindow()
返回最近的模式窗口。如果没有可见的模态窗口,此函数将返回0。模式窗口组织在堆栈中,此函数返回堆栈顶部的模式窗口。
[static] Qt::MouseButtons QGUiApplication::mouseButtons()
返回鼠标上按钮的当前状态。当前状态会同步更新。
[override virtual] bool QGuiApplication::notify(QObject *object, QEvent *event)
重新实现QCoreApplication::notify()。
[static] QCursor *QGuiApplication::overrideCursor()
返回活动中的应用程序的光标。
[static] QPalette QGuiApplication::palette()
返回默认的应用程序调色板。
[signal] void QGuiApplication::paletteChanged(const QPalette *palette)
当应用程序的调色板改变时,发出该信号。
[static] QFunctionPointer QGuiApplication::platformFunction(const QByteArray &function)
从平台插件匹配函数返回函数指针。
[static] QPlatformNativeInterface *QGuiApplication::platformNativeInterface()
返回平台的本机接口,用于特定于平台的功能。
[static] Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()
查询并返回修改器键的状态。
[static] void QGuiApplication::restoreOverrideCursor()
撤销上一个setOverrideCursor(),如果setOverrideCursor()被调用两次,那么调用restorOverrideCursor()将激活第一个游标集。第二次调用此函数将恢复原始widget的光标。
[signal] void QGuiApplication::saveStateRequest(QSessionManager &manager)
此信号涉及会话管理。当会话管理器希望应用程序为将来的会话保留其状态时,会调用它。
[signal] void QGuiApplication::screenAdded(QScreen *screen)
每当系统中添加了新屏幕时,就会发出信号。
[static] QScreen *QGuiApplication::screenAt(const QPoint &point)
返回point点上的屏幕,如果在屏幕外,则返回nullptr。该点与每组虚拟同级的virtualGeoemtry()有关。如果该点映射到一组以上的虚拟机同级,则返回第一个匹配。
[signal] void QGuiApplication::screenRemoved(QScreen *screen)
每当从系统中移除屏幕时,就会发出此信号。
[static] QList<QScreen *> QGuiApplication::screens()
返回与应用程序所连接的窗口系统相关联的所有屏幕列表。
QString QGuiApplication::sessionId() const
返回当前会话的标识符。如果应用程序已从以前的会话中恢复,则此标识符与以前会话中的标识符相同。会话标识符保证对不同的应用程序和同一应用程序的不同实例都是唯一的。
QString QGuiApplication::sessionKey() const
返回当前会话中的会话密钥。如果应用程序已从以前的会话中恢复,则此密钥与上次会话结束时的密钥相同。每次保存会话时,会话密钥都会更改。如果关闭过程被取消,则在再次关闭时将使用另一个会话密钥。
[static] void QGuiApplication::setDesktopSettingsAware(bool on)
将Qt是否应用系统的标准颜色,字体等设置为打开。默认情况下,是打开的。
[static] void QGuiApplication::setFallbackSessionManagementEnable(bool enabled)
设置QGuiApplication是否将使用回退会话管理启用。
[static] void QGuiApplication::setFont(const QFont &font)
将默认的应用程序字体修改为font。
[static] void QGuiApplication::setOverrideCursor(const QCursor *cursor)
将应用程序覆盖光标设置为光标。
[static] void QGuiApplication::setPalette(const QPalette *pal)
修改应用程序的调色板为pal。
[static] QStyleHints *QGuiApplication::styleHints()
返回应用程序的样式提示。样式提示封装了一组依赖于平台的属性,如双击间隔,全宽选择等。这些提示可以用于与底层平台进行更紧密的集成。
[static] void QGuiApplication::sync()
可用于将Qt状态与windows Systems状态同步的函数。该函数将首先通过调用QCoreApplication::processEvents()来清空Qts事件,然后平台插件将与Windows系统同步,最后Qt事件将通过另一个对QCoreApplication::processEvents()的调用来传递;此功能耗时且不鼓励使用。
[static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
返回给定位置pos处的顶层窗口。
[static] QWindowList QGuiApplication::topLevelWindows()
返回应用程序中顶级窗口的列表。
宏
qGuiApp
引用唯一应用对象的全局指针。仅当该对象是QGuiApplication时才有效。