Spec-Zone.ru › Qt

Класс 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
Наследует:

QApplication

  • Список всех членов, включая наследуемые
  • Устаревшие члены

Свойства

  • applicationDisplayName : QString
  • desktopFileName : QString
  • layoutDirection : Qt::LayoutDirection
  • platformName : const QString
  • primaryScreen : QScreen* const
  • quitOnLastWindowClosed : bool
  • windowIcon : QIcon

Открытые функции

QGuiApplication(int &argc, char **argv)
virtual ~QGuiApplication()
qreal devicePixelRatio() const
bool isSavingSession() const
bool isSessionRestored() const
QNativeInterface * nativeInterface() 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)

Статические открытые члены

QWindowList всеОкна()
QString имяПриложения()
Qt::ApplicationState состояниеПриложения()
void изменитьКурсор(const QCursor &cursor)
QClipboard * буферОбмена()
QString имяФайлаРабочегоСтола()
bool согласованСРабочимСтолом()
int exec()
QObject * объектФокуса()
QWindow * окноФокуса()
QFont шрифт()
Qt::HighDpiScaleFactorRoundingPolicy политикаОкругленияМасштабаВысокойDPI()
QInputMethod * вводМетод()
bool слеваНаправо()
bool справаНалево()
Qt::KeyboardModifiers модификаторыКлавиатуры()
Qt::LayoutDirection направлениеРазметки()
QWindow * модальноеОкно()
Qt::MouseButtons кнопкиМыши()
QCursor * переопределённыйКурсор()
QPalette палитра()
QString имяПлатформы()
QScreen * основнойЭкран()
Qt::KeyboardModifiers запросМодификаторыКлавиатуры()
bool завершитьПриЗакрытииПоследнегоОкна()
void восстановитьКурсор()
QScreen * экранВ(const QPoint &point)
QList<QScreen *> экраны()
void установитьИмяПриложения(const QString &name)
void установитьИмяФайлаРабочегоСтола(const QString &name)
void установитьСогласованностьСРабочимСтолом(bool on)
void установитьШрифт(const QFont &font)
void установитьПолитикуОкругленияМасштабаВысокойDPI(Qt::HighDpiScaleFactorRoundingPolicy policy)
void установитьНаправлениеРазметки(Qt::LayoutDirection direction)
void установитьПереопределённыйКурсор(const QCursor &cursor)
void установитьПалитру(const QPalette &pal)
void установитьЗавершениеПриЗакрытииПоследнегоОкна(bool quit)
void установитьИконкуОкна(const QIcon &icon)
QStyleHints * стильПодсказки()
void синхронизировать()
QWindow * главноеОкноВ(const QPoint &pos)
QWindowList главныеОкна()
QIcon иконкаОкна()

Реализованные Защищённые Функции

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:

  • Он инициализирует приложение с настройками рабочего стола пользователя, такими как палитра(), шрифт() и стилевые подсказки(). Он отслеживает эти свойства на случай, если пользователь изменит настройки рабочего стола глобально, например, через какое-то окно настроек.
  • Он обрабатывает события, что означает, что он получает события от базовой системы окон и перенаправляет их соответствующим виджетам. Вы можете отправлять собственные события окнам, используя sendEvent() и postEvent().
  • Он анализирует общие аргументы командной строки и соответствующим образом устанавливает своё внутреннее состояние. Более подробная информация содержится в документации конструктора ниже.
  • Он обеспечивает локализация строк, видимых пользователю, через translate().
  • Он предоставляет некоторые магические объекты, такие как буфер обмена().
  • Он знает об окнах приложения. Вы можете узнать, какое окно находится в определённой позиции, используя topLevelAt(), получить список главных окон и т. д.
  • Он управляет обработкой указателя мыши, см. setOverrideCursor()
  • Он обеспечивает поддержку сложной управления сессиями. Это позволяет приложениям завершаться корректно при выходе пользователя из системы, отменять процесс завершения, если завершение невозможно, и даже сохранять состояние всего приложения для будущей сессии. Подробности см. в isSessionRestored(), sessionId() и commitDataRequest() и saveStateRequest().

Поскольку объект QGuiApplication выполняет много инициализации, он обязательно должен быть создан перед созданием любых других объектов, связанных с пользовательским интерфейсом. QGuiApplication также обрабатывает общие аргументы командной строки. Поэтому обычно рекомендуется создать его перед любой интерпретацией или модификацией argv в самом приложении.

Группы функций
Настройки системы desktopSettingsAware(), setDesktopSettingsAware(), styleHints(), палитры(), setPalette(), шрифт(), setFont().
Обработка событий exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify().
Окна всеОкна(), главныеОкна(), focusWindow(), буферОбмена(), 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 — пример плагина.
  • offscreen
  • qnx
  • windows
  • 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 с системой окон. Некоторые из опций также доступны через переменные среды, которые предпочтительнее, если приложение может запускать подпроцессы графического интерфейса или другие приложения (переменные среды будут унаследованы дочерними процессами). В случае сомнений используйте переменные среды.

В настоящее время поддерживаются следующие опции:

  • -platform platformName[:options], указывает плагин Qt Platform Abstraction (QPA).

    Переопределяет переменную среды QT_QPA_PLATFORM.

  • -platformpluginpath path, указывает путь к плагинам платформы.

    Переопределяет переменную среды QT_QPA_PLATFORM_PLUGIN_PATH.

  • -platformtheme platformTheme, указывает тему платформы.

    Переопределяет переменную среды QT_QPA_PLATFORMTHEME.

  • -plugin plugin, указывает дополнительные плагины для загрузки. Аргумент может использоваться несколько раз.

    Объединяется с плагинами в переменной среды QT_QPA_GENERIC_PLUGINS.

  • -qmljsdebugger=, активирует отладчик QML/JS с указанным портом. Значение должно иметь формат port:1234[,block], где block — необязательно и заставит приложение ждать подключения отладчика.
  • -qwindowgeometry geometry, указывает геометрию окна главного окна, используя синтаксис X11. Например: -qwindowgeometry 100x100+50+50
  • -qwindowicon, задаёт значок по умолчанию для окна
  • -qwindowtitle, задаёт заголовок первого окна
  • -reverse, устанавливает направление макета приложения на Qt::RightToLeft. Этот параметр предназначен для отладки и не должен использоваться в производственной среде. Значение по умолчанию автоматически определяется по локали пользователя (см. также QLocale::textDirection()).
  • -session session, восстанавливает приложение из предыдущей сессии.

Ниже приведены стандартные параметры командной строки для X11:

  • -display hostname:screen_number, переключает дисплеи в X11.

    Переопределяет переменную среды DISPLAY.

  • -geometry geometry, аналогично -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], управляет использованием родных меню.

    Родные меню реализуются с помощью API Win32 и проще, чем меню на основе 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(), и Управление сессиями.

END_OF_DOCUMENT_MARKER ```

[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, когда emit 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()

Возвращает самое недавно показанное модальное окно. Если модальные окна не видны, эта функция возвращает ноль.

Модальное окно — это окно, у которого свойство модальности установлено в Qt::WindowModal или Qt::ApplicationModal. Модальное окно должно быть закрыто, прежде чем пользователь сможет продолжить работу с другими частями программы.

Модальные окна организованы в стеке. Эта функция возвращает модальное окно в верхней части стека.

См. также Qt::WindowModality и QWindow::setModality().

[static] Qt::MouseButtons QGuiApplication::mouseButtons()

Возвращает текущее состояние кнопок мыши. Текущее состояние обновляется синхронно по мере опорожнения очереди событий, которые могут спонтанно изменить состояние мыши (QEvent::MouseButtonPress и QEvent::MouseButtonRelease события).

Следует отметить, что это может не отражать фактические кнопки, удерживаемые на устройстве ввода в момент вызова, а скорее кнопки мыши, последними сообщенные в одном из вышеперечисленных событий. Если никакие кнопки мыши не удерживаются, возвращается Qt::NoButton.

См. также keyboardModifiers().

template <typename QNativeInterface> QNativeInterface *QGuiApplication::nativeInterface() const

Возвращает нативный интерфейс заданного типа для приложения.

Эта функция предоставляет доступ к платформенно-специфичным функциям QGuiApplication, как определено в пространстве имен QNativeInterface:

QNativeInterface::QX11Application

Нативный интерфейс для приложения X11

Если запрашиваемый интерфейс недоступен, возвращается nullptr.

[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)

Устанавливает политику округления коэффициента масштабирования высокого разрешения для приложения. 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.2/qguiapplication.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API