Класс QGuiApplication
Класс QGuiApplication управляет потоком управления и основными настройками графического приложения. Подробнее...
| Заголовок: | #include <QGuiApplication> |
| qmake: | QT += gui |
| С момента: | Qt 5.0 |
| Наследует: | QCoreApplication |
| Наследуется от: |
Этот класс был представлен в Qt 5.0.
Свойства
|
|
Открытые функции
| QGuiApplication(int &argc, char **argv) | |
| virtual | ~QGuiApplication() |
| qreal | отношениеПикселейУстройства() const |
| bool | сохраняетСессию() const |
| bool | восстановленаСессия() const |
| QString | идентификаторСессии() const |
| QString | ключСессии() const |
Переопределенные открытые функции
| virtual bool | уведомление(QObject *object, QEvent *event) override |
Сигналы
| void | измененоИмяПриложения() |
| void | изменилсяСостояниеПриложения(Qt::ApplicationState state) |
| void | запросСохраненияДанных(QSessionManager &manager) |
| void | изменилсяОбъектФокуса(QObject *focusObject) |
| void | изменилсяОкноФокуса(QWindow *focusWindow) |
| void | изменилсяШрифт(const QFont &font) |
| void | измениласьБазаШрифтов() |
| void | закрытоПоследнееОкно() |
| void | изменилосьНаправлениеМакет(Qt::LayoutDirection direction) |
| void | измениласьПалитра(const QPalette &palette) |
| void | изменилсяОсновнойЭкран(QScreen *screen) |
| void | запросСохраненияСостояния(QSessionManager &manager) |
| void | добавленоЭкран(QScreen *screen) |
| void | удаленЭкран(QScreen *screen) |
Статические открытые члены
Реализованные защищённые функции
| virtual bool | обработкаСобытия(QEvent *e) override |
Макросы
| qGuiApp |
Подробное описание
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()
- Он предоставляет поддержку сложной управления сессиями. Это позволяет приложениям корректно завершаться при выходе пользователя из системы, отменять процесс завершения, если завершение невозможно, а также сохранять всё состояние приложения для будущей сессии. Подробнее см. 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 ссылается на этот объект приложения. Должен быть создан только один объект приложения.
Этот объект приложения должен быть создан до создания любого устройства рисования (включая растровые изображения, битовые карты и т. д.).
Примечание: 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:
-
altgr, распознаёт клавишуAltGr, найденную на некоторых клавиатурах, как Qt::GroupSwitchModifier (начиная с Qt 5.12). -
dialogs=[xp|none],xpиспользует диалоговые окна родного стиля в стиле XP, иnoneих отключает. -
dpiawareness=[0|1|2]Устанавливает осведомлённость процесса о DPI (см. Высокое разрешение экрана, начиная с Qt 5.4). -
fontengine=freetype, использует движок шрифтов FreeType. -
menus=[native|none], управляет использованием родных меню.Родные меню реализуются с помощью Win32 API и проще, чем меню на основе QMenu, например, они позволяют размещать виджеты на них или изменять свойства, такие как шрифты, и не предоставляют сигналы наведения. Они предназначены в основном для Qt Quick. По умолчанию они будут использоваться, если приложение не является экземпляром QApplication или для приложений Qt Quick Controls 2 (начиная с Qt 5.10).
-
nocolorfontsОтключить шрифты DirectWrite Color (начиная с Qt 5.8). -
nodirectwriteОтключить шрифты DirectWrite (начиная с Qt 5.8). -
nomousefromtouchИгнорирует события мыши, синтезированные из событий касания операционной системой. -
nowmpointerПереключается с обработки сообщений ввода указателя на обработку мыши по умолчанию (начиная с Qt 5.12). -
reverseАктивирует режим справа налево (экспериментальный). Панели заголовков окон Windows будут отображаться соответствующим образом в региональных настройках справа налево (начиная с Qt 5.13). -
tabletabsoluterange=<value>Устанавливает значение для определения режима работы мыши для планшетов WinTab (Legacy, начиная с Qt 5.3).
Следующий параметр доступен для -platform cocoa (на macOS):
-
fontengine=freetype, использует движок шрифтов FreeType.
Дополнительную информацию о параметрах, специфичных для платформы, доступных для встроенных платформ Linux, см. в разделе Qt для встроенных систем Linux.
См. также arguments() и QGuiApplication::platformName.
[signal] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)
Этот сигнал испускается при изменении состояния приложения.
Эта функция была добавлена в Qt 5.2.
См. также applicationState().
[signal] void QGuiApplication::commitDataRequest(QSessionManager &manager)
Этот сигнал обрабатывает управление сессиями. Он испускается, когда QSessionManager хочет, чтобы приложение сохранило все данные.
Обычно это означает сохранение всех открытых файлов после получения разрешения от пользователя. Кроме того, вы можете предоставить способ, с помощью которого пользователь может отменить закрытие.
Не следует выходить из приложения внутри этого сигнала. Вместо этого менеджер сессии может или не может сделать это впоследствии, в зависимости от контекста.
Предупреждение: Внутри этого сигнала невозможно взаимодействовать с пользователем, если вы не попросите manager об явном разрешении. См. QSessionManager::allowsInteraction() и QSessionManager::allowsErrorInteraction() для подробностей и примера использования.
Примечание: При подключении к этому сигналу следует использовать Qt::DirectConnection.
Эта функция была добавлена в Qt 4.2.
См. также setFallbackSessionManagementEnabled(), isSessionRestored(), sessionId(), saveStateRequest(), и Управление сессиями.
[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)
Этот сигнал испускается, когда изменяется конечный получатель событий, связанных с фокусом. focusObject — новый получатель.
См. также focusObject().
[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)
Этот сигнал испускается при изменении фокусированного окна. focusWindow — новое фокусированное окно.
См. также focusWindow().
[signal] void QGuiApplication::fontChanged(const QFont &font)
Этот сигнал испускается при изменении шрифта приложения.
Эта функция была добавлена в Qt 5.11.
См. также font().
[signal] void QGuiApplication::fontDatabaseChanged()
Этот сигнал испускается при загрузке или удалении шрифтов приложения.
См. также QFontDatabase::addApplicationFont(), QFontDatabase::addApplicationFontFromData(), QFontDatabase::removeAllApplicationFonts(), и QFontDatabase::removeApplicationFont().
[signal] void QGuiApplication::lastWindowClosed()
Этот сигнал испускается из exec() при закрытии последнего видимого основного окна (т.е. окна без родительского окна).
По умолчанию QGuiApplication завершается после испускания этого сигнала. Эту функцию можно отключить, установив quitOnLastWindowClosed в false.
См. также QWindow::close() и QWindow::isTopLevel().
[signal] void QGuiApplication::paletteChanged(const QPalette &palette)
Этот сигнал испускается при изменении палитры приложения.
Эта функция была добавлена в Qt 5.4.
См. также palette().
[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().
[signal] void QGuiApplication::screenRemoved(QScreen *screen)
Этот сигнал излучается всякий раз, когда экран screen удаляется из системы. Это предоставляет возможность управлять окнами на экране, прежде чем Qt вернёт их на основной экран.
Эта функция была введена в Qt 5.4.
См. также screens(), screenAdded(), QObject::destroyed() и QWindow::setScreen().
[virtual] QGuiApplication::~QGuiApplication()
Уничтожает приложение.
[static] QWindowList QGuiApplication::allWindows()
Возвращает список всех окон в приложении.
Список пуст, если окон нет.
См. также topLevelWindows().
[static] Qt::ApplicationState QGuiApplication::applicationState()
Возвращает текущее состояние приложения.
Вы можете реагировать на изменения состояния приложения, чтобы выполнять такие действия, как остановка/возобновление задач, требующих больших вычислительных ресурсов, освобождение/загрузка ресурсов или сохранение/восстановление данных приложения.
Эта функция была введена в Qt 5.2.
[static] void QGuiApplication::changeOverrideCursor(const QCursor &cursor)
Изменяет текущий курсор переопределения приложения на cursor.
Эта функция не имеет эффекта, если setOverrideCursor() не вызывалась.
См. также setOverrideCursor(), overrideCursor(), restoreOverrideCursor() и QWidget::setCursor().
[static] QClipboard *QGuiApplication::clipboard()
Возвращает объект для взаимодействия с буфером обмена.
[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(QEvent *e).
[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 в активном окне, который будет окончательным получателем событий, связанных с фокусом, таких как события клавиш.
[static] QWindow *QGuiApplication::focusWindow()
Возвращает QWindow, получающий события, связанные с фокусом, такие как события клавиш.
[static] QFont QGuiApplication::font()
Возвращает шрифт по умолчанию для приложения.
См. также setFont().
[static] Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()
Возвращает политику округления коэффициента масштабирования для высокой плотности пикселей.
Эта функция была введена в Qt 5.14.
См. также setHighDpiScaleFactorRoundingPolicy().
[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.
Это true когда 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().
[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(QObject *receiver, QEvent *event).
[static] QCursor *QGuiApplication::overrideCursor()
Возвращает активный курсор переопределения приложения.
Функция возвращает nullptr если курсор приложения не определен (т.е. внутренний стек курсоров пуст).
См. также setOverrideCursor() и restoreOverrideCursor().
[static] QPalette QGuiApplication::palette()
Возвращает стандартную цветовую схему приложения.
См. также setPalette().
[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().
[static] QScreen *QGuiApplication::screenAt(const QPoint &point)
Возвращает экран в точке point или nullptr если точка находится вне любого экрана.
Точка point относится к virtualGeometry() каждого набора виртуальных "братьев". Если точка отображается более чем на одном наборе виртуальных "братьев", возвращается первый результат.
Данная функция была добавлена в Qt 5.10.
[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::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)
Устанавливает политику округления коэффициента масштабирования высокого разрешения для приложения. Политика policy определяет, как обрабатываются нецелые коэффициенты масштабирования (например, 150% в Windows), для приложений, у которых включен AA_EnableHighDpiScaling.
Два основных варианта: округлять дробные коэффициенты масштабирования до целого или нет. Сохранение коэффициента масштабирования как есть позволит точно соответствовать настройкам ОС, но может привести к ошибкам отрисовки, например, со стилем Windows.
Если требуется округление, то необходимо выбрать тип округления. Математически корректное округление поддерживается, но может не давать наилучших визуальных результатов: учтите, хотите ли вы отобразить 1,5x как 1x («малый интерфейс») или как 2x («большой интерфейс»). Полный список всех вариантов см. в перечислении Qt::HighDpiScaleFactorRoundingPolicy.
Эта функция должна быть вызвана до создания объекта приложения и может быть переопределена путем установки переменной окружения QT_SCALE_FACTOR_ROUNDING_POLICY. Доступ к QGuiApplication::highDpiScaleFactorRoundingPolicy() будет отражать значение, если оно установлено.
Значение по умолчанию — Qt::HighDpiScaleFactorRoundingPolicy::Round. В Qt для Android значение по умолчанию — Qt::HighDpiScaleFactorRoundingPolicy::PassThrough, что сохраняет историческое поведение из предыдущих версий Qt.
Эта функция была добавлена в Qt 5.14.
См. также highDpiScaleFactorRoundingPolicy().
[static] void QGuiApplication::setOverrideCursor(const QCursor &cursor)
Устанавливает курсор переопределения приложения на cursor.
Курсоры переопределения приложения предназначены для отображения пользователю, что приложение находится в специальном состоянии, например, во время операции, которая может занять некоторое время.
Этот курсор будет отображаться во всех виджетах приложения до тех пор, пока не будет вызван restoreOverrideCursor() или другой setOverrideCursor().
Курсоры приложения хранятся в внутренней стеке. setOverrideCursor() помещает курсор в стек, а restoreOverrideCursor() извлекает активный курсор из стека. changeOverrideCursor() изменяет текущий активный курсор переопределения приложения.
Каждый вызов setOverrideCursor() должен в конечном итоге сопровождаться соответствующим вызовом restoreOverrideCursor(), иначе стек никогда не будет очищен.
Пример:
QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); calculateHugeMandelbrot(); // lunch time... QGuiApplication::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.14/qguiapplication.html