Класс QGuiApplication
Класс QGuiApplication управляет потоком управления графического приложения и его основными настройками. Подробнее...
| Заголовок: | #include <QGuiApplication> |
| qmake: | QT += gui |
| С момента: | Qt 5.0 |
| Наследует: | QCoreApplication |
Свойства
|
|
- 5 свойств унаследовано от QCoreApplication
- 1 свойство унаследовано от QObject
Открытые функции
| 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) override |
- 3 открытых функции унаследованы от QCoreApplication
- 31 открытых функции унаследованы от QObject
Сигналы
| void | applicationDisplayNameChanged() |
| void | applicationStateChanged(Qt::ApplicationState state) |
| void | commitDataRequest(QSessionManager &manager) |
| void | focusObjectChanged(QObject *focusObject) |
| void | focusWindowChanged(QWindow *focusWindow) |
| void | fontChanged(const QFont &font) |
| 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) |
- 1 сигнал унаследован от QCoreApplication
- 2 сигнала унаследованы от QObject
Статические открытые члены
- 38 статич. общедоступные члены унаследованные от QCoreApplication
- 9 статич. общедоступные члены унаследованные от QObject
Реализованные защищённые функции
| виртуальный bool | обработатьСобытие(QEvent *e) override |
- 1 защищённая функция унаследованная от QCoreApplication
- 9 защищённые функции унаследованные от QObject
Макросы
| qGuiApp |
Дополнительные унаследованные члены
- 1 общедоступный слот унаследованный от QCoreApplication
- 1 общедоступный слот унаследованный от QObject
- 1 защищённая функция унаследованная от QCoreApplication
- 9 защищённые функции унаследованные от QObject
Подробное описание
Класс QGuiApplication управляет потоком управления и основными настройками графического приложения.
QGuiApplication содержит главный цикл событий, где все события из системы окон и других источников обрабатываются и передаются. Он также обрабатывает инициализацию и завершение приложения, и обеспечивает управление сеансом. Кроме того, QGuiApplication обрабатывает большинство системных и прикладных настроек.
Для любого графического приложения, использующего Qt, существует ровно один объект QGuiApplication, независимо от того, есть ли у приложения 0, 1, 2 или более окон в любой момент времени. Для приложений Qt, не использующих графику, используйте QCoreApplication, так как он не зависит от модуля Qt GUI. Для приложений Qt на основе QWidget, используйте QApplication, так как он предоставляет некоторые функции, необходимые для создания объектов QWidget.
Объект QGuiApplication доступен через функцию instance(), которая возвращает указатель, эквивалентный глобальному указателю qApp.
Основные обязанности QGuiApplication:
- Он инициализирует приложение настройками рабочего стола пользователя, такими как palette(), font() и styleHints(). Он отслеживает эти свойства на случай, если пользователь изменит настройки рабочего стола глобально, например, через какое-либо средство управления.
- Он обрабатывает события, что означает, что он получает события от основной системы окон и направляет их соответствующим виджетам. Вы можете отправлять собственные события окнам, используя sendEvent() и postEvent().
- Он анализирует общие аргументы командной строки и соответственно устанавливает своё внутреннее состояние. Подробнее см. документацию по конструктору ниже.
- Он обеспечивает локализация строк, видимых пользователю, через translate().
- Он предоставляет некоторые магические объекты, такие как clipboard().
- Он знает о окнах приложения. Вы можете узнать, какое окно находится в определённом положении, используя topLevelAt(), получить список topLevelWindows() и т. д.
- Он управляет обработкой курсора мыши, см. setOverrideCursor()
- Он предоставляет поддержку сложного управления сессиями session management. Это позволяет приложениям завершать работу корректно при выходе пользователя из системы, отменять процесс завершения, если завершение невозможно, а также сохранять всё состояние приложения для будущей сессии. Подробнее см. isSessionRestored(), sessionId() и commitDataRequest() и saveStateRequest().
Поскольку объект QGuiApplication выполняет столько инициализации, его необходимо создать перед созданием любых других объектов, связанных с пользовательским интерфейсом. QGuiApplication также обрабатывает общие аргументы командной строки. Поэтому обычно рекомендуется создать его до любой интерпретации или модификации argv в самом приложении.
| Группы функций | |
|---|---|
| Настройки системы | desktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont(). |
| Обработка событий | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), hasPendingEvents(), notify(). |
| Окна | 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
Это свойство содержит имя файла по умолчанию для записи в файле desktop entry.
Это имя файла (без полного пути) файла desktop entry, представляющего это приложение в соответствии со спецификацией freedesktop desktop entry.
Это свойство предоставляет точное указание на то, какой desktop entry представляет приложение, и оно необходимо системе окон для получения этой информации без использования неточных эвристик.
Последнюю версию спецификации freedesktop desktop entry можно получить здесь.
Это свойство было добавлено в 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
Это свойство содержит имя плагина платформы.
Плагины платформы QPA расположены в qtbase\src\plugins\platforms. На момент написания поддерживаются следующие имена плагинов платформы:
android-
cocoa— плагин платформы для macOS. directfb-
eglfs— плагин платформы для запуска приложений Qt5 поверх EGL и OpenGL ES 2.0 без реальной системы окон (например, X11 или Wayland). Дополнительную информацию см. в EGLFS. -
ios(также используется для tvOS) -
kms— экспериментальный плагин платформы, использующий режим отображения ядра и DRM (Direct Rendering Manager). -
linuxfb— записывает данные непосредственно в буфер кадра. Дополнительную информацию см. в LinuxFB. -
minimal— предоставляется как пример для разработчиков, желающих написать собственные плагины платформы. Однако вы можете использовать плагин для запуска графических приложений в средах без графического интерфейса, таких как серверы. -
minimalegl— пример плагина. offscreenopenwfdqnxwindows-
wayland— плагин платформы для современных настольных систем Linux и некоторых встраиваемых систем. -
xcb— плагин X11, используемый на обычных настольных системах Linux.
Дополнительную информацию о плагинах платформы для встраиваемых устройств Linux см. в Qt для встраиваемых 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 и argv, должны оставаться валидными на протяжении всего жизненного цикла объекта QGuiApplication. Кроме того, argc должно быть больше нуля, а argv — содержать по крайней мере одну валидную строку символов.
Глобальный указатель qApp ссылается на этот объект приложения. Должен быть создан только один объект приложения.
Объект приложения должен быть создан до создания любых устройств рисования (включая pixmaps, bitmaps и т. д.).
Примечание: argc и argv могут быть изменены, так как Qt удаляет аргументы командной строки, которые он распознаёт.
Поддерживаемые параметры командной строки
Все программы Qt автоматически поддерживают набор параметров командной строки, позволяющих изменить взаимодействие Qt с системой окон. Некоторые параметры также доступны через переменные окружения, что предпочтительнее, если приложение может запускать подпроцессы графического интерфейса или другие приложения (переменные окружения будут унаследованы дочерними процессами). В случае сомнений используйте переменные окружения.
В настоящее время поддерживаются следующие параметры:
-
-platformplatformName[:options], указывает плагин Qt Platform Abstraction (QPA).Переопределяет переменную окружения
QT_QPA_PLATFORM. -
-platformpluginpathpath, указывает путь к плагинам платформы.Переопределяет переменную окружения
QT_QPA_PLATFORM_PLUGIN_PATH. -
-platformthemeplatformTheme, указывает тему платформы.Переопределяет переменную окружения
QT_QPA_PLATFORMTHEME. -
-pluginplugin, указывает дополнительные плагины для загрузки. Аргумент может встречаться несколько раз.Добавляется к плагинам в переменной окружения
QT_QPA_GENERIC_PLUGINS. -
-qmljsdebugger=, активирует отладчик QML/JS с указанным портом. Значение должно иметь форматport:1234[,block], где block — необязательно и заставит приложение ожидать подключения отладчика. -
-qwindowgeometrygeometry, указывает геометрию окна для основного окна, используя синтаксис X11. Например:-qwindowgeometry 100x100+50+50 -
-qwindowicon, устанавливает значок по умолчанию для окна. -
-qwindowtitle, устанавливает заголовок первого окна. -
-reverse, устанавливает направление макета приложения на Qt::RightToLeft. Этот параметр предназначен для отладки и не должен использоваться в рабочей среде. Значение по умолчанию определяется автоматически из региональных настроек пользователя (см. также QLocale::textDirection()). -
-sessionsession, восстанавливает приложение из предыдущей сессии.
Ниже приведены стандартные параметры командной строки для X11:
-
-displayhostname:screen_number, переключает дисплеи в X11.Переопределяет переменную окружения
DISPLAY. -
-geometrygeometry, аналогично-qwindowgeometry.
Параметры, специфичные для платформы
Вы можете указать параметры, специфичные для платформы, для опции -platform. Разместите их после имени плагина платформы, после двоеточия в виде списка, разделённого запятыми. Например, -platform windows:dialogs=xp,fontengine=freetype.
Доступны следующие параметры для -platform windows:
-
dialogs=[xp|none],xpиспользует нативные диалоговые окна в стиле XP, аnoneих отключает. -
fontengine=freetype, использует шрифтовой движок FreeType. -
menus=[native|none], управляет использованием нативных меню.Нативные меню реализованы с помощью Win32 API и проще, чем меню на основе QMenu, например, они позволяют размещать виджеты на них или изменять свойства, такие как шрифты, и не предоставляют сигналы наведения. Они в основном предназначены для Qt Quick. По умолчанию они будут использоваться, если приложение не является экземпляром QApplication или для приложений Qt Quick Controls 2.
-
altgr, определяет клавишуAltGrна некоторых клавиатурах как Qt::GroupSwitchModifier.
Следующий параметр доступен для -platform cocoa (в macOS):
-
fontengine=freetype, использует шрифтовой движок FreeType.
Дополнительную информацию о параметрах, специфичных для платформы, доступных для встроенных платформ Linux, см. в разделе Qt для встроенных систем Linux.
См. также arguments() и QGuiApplication::platformName.
[virtual] QGuiApplication::~QGuiApplication()
Уничтожает приложение.
[static] QWindowList QGuiApplication::allWindows()
Возвращает список всех окон в приложении.
Список пуст, если нет окон.
См. также topLevelWindows().
[static] Qt::ApplicationState QGuiApplication::applicationState()
Возвращает текущее состояние приложения.
Вы можете реагировать на изменения состояния приложения для выполнения действий, таких как приостановка/возобновление ресурсоёмких задач, освобождение/загрузка ресурсов или сохранение/восстановление данных приложения.
Эта функция была добавлена в 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 хочет, чтобы приложение сохранило все свои данные.
Обычно это означает сохранение всех открытых файлов после получения разрешения от пользователя. Кроме того, вы можете предоставить способ, с помощью которого пользователь может отменить завершение работы.
Не следует выходить из приложения внутри этого сигнала. Вместо этого менеджер сессий может или не может сделать это позже, в зависимости от контекста.
Предупреждение: Внутри этого сигнала невозможно взаимодействовать с пользователем, если вы не запросите явного разрешения у 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
Возвращает наибольшее значение отношения пикселей устройства экрана, найденное в системе. Это отношение между физическими пикселями и устройствами независимых пикселей.
Используйте эту функцию только в том случае, если вы не знаете, какое окно вы нацеливаете. Если вы знаете целевое окно, используйте QWindow::devicePixelRatio() вместо этого.
См. также QWindow::devicePixelRatio().
[override virtual protected] bool QGuiApplication::event(QEvent *e)
Переопределено из QCoreApplication::event().
[static] int QGuiApplication::exec()
Входит в основной цикл обработки событий и ожидает вызова exit(), а затем возвращает значение, установленное для exit() (которое равно 0, если exit() вызван через quit()).
Для начала обработки событий необходимо вызвать эту функцию. Основной цикл обработки событий получает события от графической системы и направляет их виджетам приложения.
Как правило, пользовательское взаимодействие невозможно до вызова 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::fontChanged(const QFont &font)
Этот сигнал испускается, когда шрифт (font) приложения изменяется.
Эта функция была введена в Qt 5.11.
См. также font().
[signal] void QGuiApplication::fontDatabaseChanged()
Этот сигнал испускается, когда шрифты приложения загружаются или удаляются.
См. также QFontDatabase::addApplicationFont(), QFontDatabase::addApplicationFontFromData(), QFontDatabase::removeAllApplicationFonts(), и QFontDatabase::removeApplicationFont().
[static] QInputMethod *QGuiApplication::inputMethod()
возвращает метод ввода.
Метод ввода возвращает свойства состояния и положения виртуальной клавиатуры. Он также предоставляет информацию о позиции текущего фокусированного элемента ввода.
См. также QInputMethod.
[static] bool QGuiApplication::isFallbackSessionManagementEnabled()
Возвращает значение, указывающее, будет ли QGuiApplication использовать резервное управление сеансом.
Значение по умолчанию — true.
Если это значение true и менеджер сеансов позволяет взаимодействие пользователя, QGuiApplication попытается закрыть окна верхнего уровня после того, как будет испущен сигнал commitDataRequest(). Если окно не может быть закрыто, завершение сеанса будет отменено, и приложение продолжит работу.
Резервное управление сеансом полезно только для приложений, имеющих функцию «Вы действительно хотите закрыть это окно?» или другую логику, предотвращающую закрытие окна верхнего уровня в зависимости от определенных условий, и не реализующих явно управление сеансом. В приложениях, которые *реализуют* управление сеансом с использованием соответствующего API управления сеансом, резервное управление сеансом может вмешиваться и нарушить логику управления сеансом.
Предупреждение: Если все окна *закрываются* из-за резервного управления сеансом и quitOnLastWindowClosed() имеет значение true, приложение завершит работу до явного указания завершения через протокол управления сеансами платформы. Это нарушение протокола может помешать менеджеру сеансов платформы сохранить состояние приложения.
Эта функция была введена в 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 если приложение в данный момент сохраняет сеанс; в противном случае возвращает false.
Это происходит при испускании commitDataRequest() и saveStateRequest(), а также при закрытии окон после этого с помощью управления сеансами.
Эта функция была введена в Qt 5.0.
См. также sessionId(), commitDataRequest(), и saveStateRequest().
bool QGuiApplication::isSessionRestored() const
Возвращает true если приложение было восстановлено из предыдущего сеанса; в противном случае возвращает false.
См. также sessionId(), commitDataRequest(), и saveStateRequest().
[static] Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()
Возвращает текущее состояние клавиш-модификаторов на клавиатуре. Текущее состояние обновляется синхронно по мере очистки очереди событий от событий, которые могут спонтанно изменить состояние клавиатуры (QEvent::KeyPress и QEvent::KeyRelease события).
Следует отметить, что это может не отражать фактические клавиши, удерживаемые на устройстве ввода в момент вызова, а скорее модификаторы, как они были последний раз отражены в одном из вышеперечисленных событий. Если никакие клавиши не удерживаются, возвращается Qt::NoModifier.
См. также mouseButtons() и queryKeyboardModifiers().
[signal] void QGuiApplication::lastWindowClosed()
Этот сигнал испускается из exec() при закрытии последнего видимого основного окна (т.е. окна без родителя).
По умолчанию QGuiApplication завершает работу после испускания этого сигнала. Эту функцию можно отключить, установив quitOnLastWindowClosed в false.
См. также QWindow::close() и QWindow::isTopLevel().
[static] QWindow *QGuiApplication::modalWindow()
Возвращает последнее показанное модальное окно. Если модальные окна не отображаются, функция возвращает ноль.
Модальное окно — это окно, у которого свойство modality установлено в Qt::WindowModal или Qt::ApplicationModal. Модальное окно необходимо закрыть, прежде чем пользователь сможет продолжить работу с другими частями программы.
Модальные окна организованы в стеке. Эта функция возвращает модальное окно в верхней части стека.
См. также Qt::WindowModality и QWindow::setModality().
[static] Qt::MouseButtons QGuiApplication::mouseButtons()
Возвращает текущее состояние кнопок мыши. Текущее состояние обновляется синхронно по мере очистки очереди событий от событий, которые могут спонтанно изменить состояние мыши (QEvent::MouseButtonPress и QEvent::MouseButtonRelease события).
Следует отметить, что это может не отражать фактические кнопки, удерживаемые на устройстве ввода в момент вызова, а скорее кнопки мыши, как они были последний раз отражены в одном из вышеперечисленных событий. Если никакие кнопки мыши не удерживаются, возвращается Qt::NoButton.
См. также keyboardModifiers().
[override virtual] bool QGuiApplication::notify(QObject *object, QEvent *event)
Переопределено из QCoreApplication::notify().
[static] QCursor *QGuiApplication::overrideCursor()
Возвращает активный курсор переопределения приложения.
Эта функция возвращает nullptr если курсор приложения не был определен (т.е. внутренний стек курсоров пуст).
См. также setOverrideCursor() и restoreOverrideCursor().
[static] QPalette QGuiApplication::palette()
Возвращает палитру по умолчанию для приложения.
См. также setPalette().
[signal] void QGuiApplication::paletteChanged(const QPalette &palette)
Этот сигнал генерируется при изменении цветовой схемы (palette) приложения.
Эта функция была введена в Qt 5.4.
См. также palette().
[static] QFunctionPointer QGuiApplication::platformFunction(const QByteArray &function)
Возвращает указатель на функцию из плагин платформы, соответствующую function
[static] QPlatformNativeInterface *QGuiApplication::platformNativeInterface()
Возвращает нативный интерфейс платформы для функциональности, специфичной для платформы.
[static] Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()
Запрашивает и возвращает состояние клавиш модификаторов на клавиатуре. В отличие от keyboardModifiers, этот метод возвращает фактическое состояние клавиш на вводном устройстве в момент вызова метода.
Он не полагается на то, что события нажатия клавиш были получены этим процессом, что позволяет проверить модификаторы, например, при перемещении окна. Обратите внимание, что в большинстве случаев следует использовать keyboardModifiers(), который быстрее и точнее, так как он содержит состояние модификаторов в момент получения текущего обрабатываемого события.
См. также keyboardModifiers().
[static] void QGuiApplication::restoreOverrideCursor()
Отменяет последнее действие setOverrideCursor().
Если setOverrideCursor() было вызвано дважды, вызов restoreOverrideCursor() активирует первый установленный курсор. Вызов этой функции второй раз восстанавливает исходные курсоры виджетов.
См. также setOverrideCursor() и overrideCursor().
[signal] void QGuiApplication::saveStateRequest(QSessionManager &manager)
Этот сигнал связан с управлением сеансами. Он вызывается, когда менеджер сеансов хочет, чтобы приложение сохранило своё состояние для будущего сеанса.
Например, текстовый редактор создаст временный файл, содержащий текущее содержимое буферов редактирования, положение курсора и другие аспекты текущего сеанса редактирования.
Необходимо никогда не выходить из приложения внутри этого сигнала. Вместо этого менеджер сеансов может или не может сделать это впоследствии, в зависимости от контекста. Кроме того, большинство менеджеров сеансов, скорее всего, запросят сохраненное состояние сразу после запуска приложения. Это позволяет менеджеру сеансов узнать о политике перезапуска приложения.
Предупреждение: Внутри этого сигнала невозможно взаимодействовать с пользователем, если вы не запросите явного разрешения у manager. См. QSessionManager::allowsInteraction() и QSessionManager::allowsErrorInteraction() для получения подробностей.
Примечание: При подключении к этому сигналу следует использовать Qt::DirectConnection.
Эта функция была введена в Qt 4.2.
См. также isSessionRestored(), sessionId(), commitDataRequest(), и Управление сеансами.
[signal] void QGuiApplication::screenAdded(QScreen *screen)
Этот сигнал генерируется всякий раз, когда новый экран screen добавляется в систему.
См. также screens(), primaryScreen и screenRemoved().
[static] QScreen *QGuiApplication::screenAt(const QPoint &point)
Возвращает экран в точке point или nullptr если точка находится вне любого экрана.
Точка point относится к virtualGeometry() каждого набора виртуальных «родственников». Если точка соответствует более чем одному набору виртуальных «родственников», возвращается первый результат.
Эта функция была введена в Qt 5.10.
[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
Возвращает идентификатор текущего сеанса.
Если приложение было восстановлено из предыдущего сеанса, этот идентификатор будет таким же, как и в предыдущем сеансе. Идентификатор сеанса гарантированно уникален как для разных приложений, так и для разных экземпляров одного и того же приложения.
См. также isSessionRestored(), sessionKey(), commitDataRequest() и saveStateRequest().
QString QGuiApplication::sessionKey() const
Возвращает ключ сеанса в текущем сеансе.
Если приложение было восстановлено из предыдущего сеанса, этот ключ будет таким же, как и при завершении предыдущего сеанса.
Ключ сеанса изменяется каждый раз, когда сеанс сохраняется. Если процесс завершения работы отменен, при повторной остановке будет использован другой ключ сеанса.
См. также 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)
Устанавливает, будет ли QGuiApplication использовать резервное управление сеансами в значение enabled.
Эта функция была введена в Qt 5.6.
См. также isFallbackSessionManagementEnabled().
[static] void QGuiApplication::setFont(const QFont &font)
Изменяет шрифт по умолчанию приложения на font.
См. также font().
[static] void QGuiApplication::setOverrideCursor(const QCursor &cursor)
Устанавливает курсор переопределения приложения на cursor.
Курсоры переопределения приложения предназначены для показа пользователю, что приложение находится в специальном состоянии, например, во время операции, которая может занять некоторое время.
Этот курсор будет отображаться во всех виджетах приложения до тех пор, пока не будет вызван restoreOverrideCursor() или другой setOverrideCursor().
Курсоры приложения хранятся в внутреннем стеке. setOverrideCursor() помещает курсор в стек, а restoreOverrideCursor() извлекает активный курсор из стека. changeOverrideCursor() изменяет текущий активный курсор переопределения приложения.
Каждый вызов setOverrideCursor() должен быть в конечном итоге сопровождаться соответствующим restoreOverrideCursor(), в противном случае стек никогда не будет очищен.
Пример:
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); calculateHugeMandelbrot(); // lunch time... QApplication::restoreOverrideCursor();
См. также overrideCursor(), restoreOverrideCursor(), changeOverrideCursor() и QWidget::setCursor().
[static] void QGuiApplication::setPalette(const QPalette &pal)
Изменяет цветовую схему (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.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qguiapplication.html