Класс QGuiApplication
Класс QGuiApplication управляет потоком управления и основными настройками графического приложения. Подробнее...
| Заголовок: | #include <QGuiApplication> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| С момента: | Qt 5.0 |
| Наследует: | QCoreApplication |
| Наследуется от: |
Свойства
|
|
Открытые функции
| 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 |
Сигналы
| 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 | primaryScreenChanged(QScreen *screen) |
| void | saveStateRequest(QSessionManager &manager) |
| void | screenAdded(QScreen *screen) |
| void | screenRemoved(QScreen *screen) |
Статические открытые члены
Переопределённые защищённые функции
| virtual bool | обработатьСобытие(QEvent *e) override |
Макросы
| приложениеQt |
Подробное описание
QGuiApplication содержит главный цикл обработки событий, где обрабатываются и передаются все события из системного окна и других источников. Он также обрабатывает инициализацию и завершение приложения и предоставляет управление сеансом. Кроме того, QGuiApplication обрабатывает большинство системных и прикладных настроек.
Для любого графического приложения, использующего Qt, существует ровно один объект QGuiApplication, независимо от того, имеет ли приложение 0, 1, 2 или более окон в данный момент. Для приложений Qt без графического интерфейса используйте QCoreApplication, так как оно не зависит от модуля Qt GUI. Для приложений Qt на основе QWidget используйте QApplication, так как оно предоставляет некоторые функции, необходимые для создания экземпляров QWidget.
Объект QGuiApplication доступен через функцию instance(), которая возвращает указатель, эквивалентный глобальному указателю qApp.
Основные обязанности QGuiApplication:
- Он инициализирует приложение настройками рабочего стола пользователя, такими как панель цветов(), шрифт() и стилевые подсказки(). Он отслеживает эти свойства на случай, если пользователь изменит настройки рабочего стола глобально, например, через какой-либо панель управления.
- Он обрабатывает события, что означает, что он получает события от базовой системы окон и рассылает их соответствующим виджетам. Вы можете отправлять собственные события в окна, используя sendEvent() и postEvent().
- Он парсит общие аргументы командной строки и устанавливает своё внутреннее состояние соответственно. Более подробную информацию см. в документации конструктора ниже.
- Он обеспечивает локализация строк, видимых пользователю, через translate().
- Он предоставляет некоторые магические объекты, такие как буфер обмена().
- Он знает о окнах приложения. Вы можете узнать, какое окно находится в определённом месте, используя topLevelAt(), получить список верхнеуровневых окон и т.д.
- Он управляет обработкой курсора мыши, см. setOverrideCursor()
- Он обеспечивает поддержку сложной управления сессиями. Это позволяет приложениям завершаться корректно при выходе пользователя из системы, отменять процесс завершения, если завершение невозможно, и даже сохранять всё состояние приложения для будущей сессии. Подробнее см. isSessionRestored(), sessionId() и commitDataRequest() и saveStateRequest()
Поскольку объект QGuiApplication выполняет так много инициализации, его необходимо создавать до создания других объектов, связанных с пользовательским интерфейсом. QGuiApplication также обрабатывает общие аргументы командной строки. Поэтому обычно рекомендуется создать его перед любой интерпретацией или модификацией argv в самом приложении.
| Группы функций | |
|---|---|
| Настройки системы | desktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont(). |
| Обработка событий | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify(). |
| Окна | allWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt(). |
| Расширенная обработка курсора | overrideCursor(), setOverrideCursor(), restoreOverrideCursor(). |
| Управление сессиями | isSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest(). |
| Разное | startingUp(), closingDown(). |
См. также QCoreApplication, QAbstractEventDispatcher и QEventLoop.
Документация свойств
[since 5.0] applicationDisplayName : QString
Это свойство содержит отображаемое имя приложения для пользователя.
Это имя отображается пользователю, например, в заголовках окон. При необходимости оно может быть переведено.
Если не задано, имя отображения приложения по умолчанию совпадает с именем приложения.
Это свойство было добавлено в Qt 5.0.
Функции доступа:
| QString | applicationDisplayName() |
| void | setApplicationDisplayName(const QString &name) |
Сигнал уведомления:
| void | applicationDisplayNameChanged() |
См. также applicationName.
[since 5.7] desktopFileName : QString
Это свойство содержит базовое имя записи для рабочего стола для данного приложения.
Это имя файла без полного пути к записи на рабочем столе, которая представляет это приложение в соответствии со спецификацией freedesktop 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().
[read-only] platformName : const QString
Это свойство содержит имя плагина платформы.
Плагины платформы QPA расположены в qtbase\src\plugins\platforms. На данный момент поддерживаются следующие имена плагинов платформы:
android-
cocoa— плагин платформы для macOS. directfb-
eglfs— плагин платформы для запуска приложений Qt5 поверх EGL и OpenGL ES 2.0 без реальной системы окон (например, X11 или Wayland). Дополнительную информацию см. в EGLFS. -
ios(также используется для tvOS) -
linuxfbзаписывает данные непосредственно в буфер кадра. Дополнительную информацию см. в LinuxFB. -
minimalпредоставляется в качестве примера разработчикам, желающим создавать собственные плагины платформы. Однако вы можете использовать плагин для запуска приложений графического интерфейса в средах без графического интерфейса, таких как серверы. -
minimalegl— пример плагина. offscreenqnxwindows-
wayland— плагин платформы для современных настольных систем Linux и некоторых встраиваемых систем. -
xcb— плагин X11, используемый на обычных настольных платформах Linux.
Дополнительную информацию о плагинах платформы для встраиваемых устройств Linux см. в Qt для встраиваемых систем Linux.
Функции доступа:
| QString | platformName() |
[read-only] 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). -
darkmode=[1|2]управляет тем, как Qt реагирует на активацию Темного режима для приложений, представленного в Windows 10 1903 (с Qt 5.15).Значение 1 заставляет Qt переключать границы окна на чёрный, когда Темный режим для приложений активирован и тема Высокого контраста не используется. Это предназначено для приложений, реализующих собственную тему.
Значение 2 дополнительно отключит стиль Windows Vista и переключится на стиль Windows с использованием упрощённой палитры в тёмном режиме. В настоящее время это экспериментально, ожидая введения нового стиля, который должным образом адаптируется к тёмному режиму.
-
dialogs=[xp|none],xpиспользует диалоговые окна XP-стиля иnoneих отключает. -
fontengine=freetype, использует движок шрифтов FreeType. -
fontengine=directwrite, использует экспериментальную базу данных шрифтов DirectWrite и по умолчанию использует движок шрифтов DirectWrite (который в противном случае используется только для некоторых типов или свойств шрифтов). Это влияет на выбор шрифтов и призвано обеспечить более согласованное именование шрифтов с другими платформами, но не поддерживает все форматы шрифтов, такие как Postscript Type-1 или Microsoft FNT. -
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 (устаревший, с Qt 5.3).
Следующий параметр доступен для -platform cocoa (на macOS):
-
fontengine=freetype, использует движок шрифтов FreeType.
Для получения дополнительной информации о параметрах, специфичных для платформы, доступных для встраиваемых платформ Linux, см. Qt для встраиваемого Linux.
См. также arguments() и QGuiApplication::platformName.
[signal, since 5.2] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)
Этот сигнал излучается при изменении состояния приложения.
Эта функция была введена в Qt 5.2.
См. также applicationState().
[signal] void QGuiApplication::commitDataRequest(QSessionManager &manager)
Этот сигнал обрабатывает управление сессиями. Он излучается, когда QSessionManager хочет, чтобы приложение сохранило все данные.
Обычно это означает сохранение всех открытых файлов после получения разрешения от пользователя. Кроме того, вы можете предоставить способ, с помощью которого пользователь может отменить завершение работы.
Вы не должны завершать приложение в этом сигнале. Вместо этого менеджер сессий может или может не сделать это впоследствии, в зависимости от контекста.
Предупреждение: В этом сигнале взаимодействие с пользователем невозможно, если вы не попросите manager о явном разрешении. См. QSessionManager::allowsInteraction() и QSessionManager::allowsErrorInteraction() для получения подробностей и примера использования.
Примечание: Вы должны использовать Qt::DirectConnection при подключении к этому сигналу.
См. также isSessionRestored(), sessionId(), saveStateRequest() и Управление сессиями.
[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)
Этот сигнал излучается, когда изменяется окончательный получатель событий, связанных со сфокусированностью. focusObject — новый получатель.
См. также focusObject().
[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)
Этот сигнал излучается при изменении фокусированного окна. focusWindow — новое фокусированное окно.
См. также focusWindow().
[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::saveStateRequest(QSessionManager &manager)
Этот сигнал обрабатывает управление сессиями. Он вызывается, когда менеджер сессий хочет сохранить состояние приложения для будущей сессии.
Например, текстовый редактор создаст временный файл, который включает текущее содержимое буферов редактирования, расположение курсора и другие аспекты текущей сессии редактирования.
Вы никогда не должны завершать приложение в этом сигнале. Вместо этого менеджер сессий может или может не сделать это впоследствии, в зависимости от контекста. Кроме того, большинство менеджеров сессий, скорее всего, запросят сохранённое состояние сразу же после запуска приложения. Это позволяет менеджеру сессий узнать о политике перезапуска приложения.
Предупреждение: В этом сигнале взаимодействие с пользователем невозможно, если вы не попросите manager о явном разрешении. См. QSessionManager::allowsInteraction() и QSessionManager::allowsErrorInteraction() для получения подробностей.
Примечание: Вы должны использовать Qt::DirectConnection при подключении к этому сигналу.
См. также isSessionRestored(), sessionId(), commitDataRequest() и Управление сессиями.
[signal] void QGuiApplication::screenAdded(QScreen *screen)
Этот сигнал испускается всякий раз, когда новый экран screen добавляется в систему.
См. также screens(), primaryScreen и screenRemoved().
[signal, since 5.4] 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, since 5.2] 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, since 5.14] Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()
Возвращает политику округления коэффициента масштабирования для высокой плотности пикселей.
Эта функция была введена в Qt 5.14.
См. также setHighDpiScaleFactorRoundingPolicy().
[static] QInputMethod *QGuiApplication::inputMethod()
Возвращает метод ввода.
Метод ввода возвращает свойства о состоянии и позиции виртуальной клавиатуры. Он также предоставляет информацию о позиции текущего фокусированного элемента ввода.
См. также QInputMethod.
[static] bool QGuiApplication::isLeftToRight()
Возвращает true если направление макета приложения — Qt::LeftToRight; в противном случае возвращает false.
См. также layoutDirection() и isRightToLeft().
[static] bool QGuiApplication::isRightToLeft()
Возвращает true если направление макета приложения — Qt::RightToLeft; в противном случае возвращает false.
См. также layoutDirection() и isLeftToRight().
[since 5.0] 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] Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()
Запрашивает и возвращает состояние клавиш модификаторов на клавиатуре. В отличие от keyboardModifiers, этот метод возвращает фактические клавиши, удерживаемые на устройстве ввода в момент вызова метода.
Он не зависит от того, были ли события нажатия клавиш получены этим процессом, что позволяет проверять модификаторы, например, при перемещении окна. Обратите внимание, что в большинстве случаев вы должны использовать keyboardModifiers(), который быстрее и точнее, так как содержит состояние модификаторов в момент получения текущего обрабатываемого события.
См. также keyboardModifiers().
[static] void QGuiApplication::restoreOverrideCursor()
Отменяет последнее setOverrideCursor().
Если setOverrideCursor() был вызван дважды, вызов restoreOverrideCursor() активирует первый установленный курсор. Вызов этой функции во второй раз восстанавливает исходные курсоры виджетов.
См. также setOverrideCursor() и overrideCursor().
[static, since 5.10] QScreen *QGuiApplication::screenAt(const QPoint &point)
Возвращает экран в позиции point, или nullptr если за пределами любого экрана.
point относится к virtualGeometry() каждого набора виртуальных «братьев». Если точка соответствует более чем одному набору виртуальных «братьев», возвращается первая совпавшая точка. Если вы хотите искать только виртуальных «братьев» экрана (например, «братьев» экрана вашего окна приложения QWidget::windowHandle()->screen()), используйте QScreen::virtualSiblingAt().
Эта функция была введена в 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::setFont(const QFont &font)
Изменяет шрифт по умолчанию приложения на font.
См. также font().
[static, since 5.14] void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)
Устанавливает политику округления коэффициента масштабирования High-DPI для приложения. policy определяет, как обрабатываются нецелые коэффициенты масштабирования (например, 150% в Windows).
Основные варианты — округлять дробные коэффициенты до целых или нет. Сохранение коэффициента в исходном виде позволит точно соответствовать настройкам ОС, но может привести к ошибкам при отрисовке, например, со стилем Windows.
Если округлять, то какой тип округления использовать дальше. Поддерживается математически корректное округление, но оно может не давать лучших визуальных результатов: нужно ли отображать 1,5x как 1x ("маленький интерфейс") или как 2x ("большой интерфейс"). См. перечисление Qt::HighDpiScaleFactorRoundingPolicy для полного списка вариантов.
Эта функция должна быть вызвана до создания объекта приложения. Метод QGuiApplication::highDpiScaleFactorRoundingPolicy() отразит окружение, если оно установлено.
Значение по умолчанию — Qt::HighDpiScaleFactorRoundingPolicy::PassThrough.
Эта функция была введена в 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, since 5.2] 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-6.1/qguiapplication.html