Класс 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 | notify(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 *событие) override |
Макросы
| приложениеQGui |
Подробное описание
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
Это свойство содержит базовое имя записи в меню «Рабочий стол» для этого приложения.
Это имя файла, без полного пути, записи в меню «Рабочий стол», которая представляет это приложение в соответствии со спецификацией 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().
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 ссылается на этот объект приложения. Должен быть создан только один объект приложения.
Этот объект приложения должен быть создан перед любыми устройствами отрисовки (включая pixmap, bitmap и т.д.).
Примечание: 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.
[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)
Этот сигнал излучается всякий раз, когда экран удаляется из системы. Он предоставляет возможность управлять окнами на экране, прежде чем 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] 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::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()
Возвращает подсказки стиля приложения.
Стилистические подсказки (hints) содержат набор зависящих от платформы свойств, таких как интервалы двойного щелчка, выделение на всю ширину и другие.
Подсказки могут использоваться для более тесной интеграции с базовой платформой.
См. также 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().
Документация макросов
QGuiApplication::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.13/qguiapplication.html