Spec-Zone.ru › Qt 5.15

Класс QGuiApplication

Класс QGuiApplication управляет потоком управления и основными настройками графического приложения. Подробнее...

Заголовок: #include <QGuiApplication>
qmake: QT += gui
С момента: Qt 5.0
Наследует: QCoreApplication
Наследуется от:

QApplication

Этот класс был представлен в Qt 5.0.

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

Свойства

  • Название приложения : QString
  • Имя файла рабочего стола : QString
  • Направление компоновки : Qt::LayoutDirection
  • Имя платформы : const QString
  • Основной экран : QScreen* const
  • Закрытие при закрытии последнего окна : bool
  • Значок окна : QIcon

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

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)

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

QWindowList всеОкна()
QString имяПриложения()
Qt::ApplicationState состояниеПриложения()
void изменитьКурсорПереопределения(const QCursor &cursor)
QClipboard * буферОбмена()
QString имяФайлаРабочегоСтола()
bool ориентированНаНастройкиРабочегоСтола()
int exec()
QObject * объектФокуса()
QWindow * окноФокуса()
QFont шрифт()
Qt::HighDpiScaleFactorRoundingPolicy политикаОкругленияМасштабаВысокогоDPI()
QInputMethod * вводМетод()
bool isFallbackSessionManagementEnabled()
bool слеваНаправо()
bool справаНалево()
Qt::KeyboardModifiers модификаторыКлавиатуры()
Qt::LayoutDirection направлениеРазметки()
QWindow * модальноеОкно()
Qt::MouseButtons кнопкиМыши()
QCursor * курсорПереопределения()
QPalette палитра()
QFunctionPointer функцияПлатформы(const QByteArray &function)
QString имяПлатформы()
QPlatformNativeInterface * интерфейсПлатформы()
QScreen * основнойЭкран()
Qt::KeyboardModifiers запросМодификаторовКлавиатуры()
bool завершитьПриЗакрытииПоследнегоОкна()
void восстановитьКурсорПереопределения()
QScreen * экранВ(const QPoint &point)
QList<QScreen *> экраны()
void установитьИмяПриложения(const QString &name)
void установитьИмяФайлаРабочегоСтола(const QString &name)
void установитьОриентациюНаНастройкиРабочегоСтола(bool on)
void установитьВключённостьРежимУправленияСеансомПоУмолчанию(bool enabled)
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:

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

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

Группы функций
Настройки системы desktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont().
Обработка событий exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), hasPendingEvents(), notify().
Окна allWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt().
Расширенная обработка курсора overrideCursor(), setOverrideCursor(), restoreOverrideCursor().
Управление сессиями isSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest().
Разное startingUp(), closingDown().

См. также QCoreApplication, QAbstractEventDispatcher и QEventLoop.

Документация свойств

applicationDisplayName : QString

Это свойство содержит отображаемое имя приложения.

Это имя отображается пользователю, например, в заголовках окон. При необходимости оно может быть переведено.

Если не задано, имя приложения по умолчанию совпадает с именем приложения.

Это свойство было добавлено в Qt 5.0.

Функции доступа:

QString applicationDisplayName()
void setApplicationDisplayName(const QString &name)

Сигнал уведомления:

void applicationDisplayNameChanged()

См. также applicationName.

desktopFileName : QString

Это свойство содержит имя файла записи на рабочем столе для этого приложения.

Это имя файла, без полного пути, записи на рабочем столе, которая представляет это приложение в соответствии со спецификацией 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 — пример плагина.
  • offscreen
  • openwfd
  • qnx
  • windows
  • wayland — плагин платформы для современных настольных систем Linux и некоторых встроенных систем.
  • xcb — плагин X11, используемый на обычных настольных системах Linux.

Дополнительную информацию о плагинах платформы для встроенных устройств Linux см. в разделе Qt для встроенных систем Linux.

Функции доступа:

QString platformName()

primaryScreen : QScreen* const

Это свойство содержит основной (или по умолчанию) экран приложения.

Это будет экран, на котором QWindows будут первоначально показаны, если не указано иное.

Сигнал primaryScreenChanged был добавлен в Qt 5.6.

Функции доступа:

QScreen * primaryScreen()

Сигнал уведомления:

void primaryScreenChanged(QScreen *screen)

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

quitOnLastWindowClosed : bool

Это свойство определяет, автоматически ли приложение завершается при закрытии последнего окна.

Значение по умолчанию — true.

Если это свойство равно true, приложение завершается при закрытии последнего видимого основного окна (т.е. окна без родителя).

Функции доступа:

bool quitOnLastWindowClosed()
void setQuitOnLastWindowClosed(bool quit)

См. также quit() и QWindow::close().

windowIcon : QIcon

Это свойство содержит значок окна по умолчанию.

Функции доступа:

QIcon windowIcon()
void setWindowIcon(const QIcon &icon)

См. также QWindow::setIcon() и Установка значка приложения.

Документация функций-членов

QGuiApplication::QGuiApplication(int &argc, char **argv)

Инициализирует систему окон и создаёт объект приложения с argc аргументами командной строки в argv.

Предупреждение: данные, на которые ссылаются argc и argv, должны оставаться валидными в течение всего срока существования объекта QGuiApplication. Кроме того, argc должно быть больше нуля, а argv — содержать по крайней мере одну корректную строку.

Глобальный указатель qApp ссылается на этот объект приложения. Следует создать только один объект приложения.

Этот объект приложения должен быть создан перед любыми устройствами рисования (включая пиктограммы, битовые карты и т. д.).

Примечание: argc и argv могут быть изменены, так как Qt удаляет аргументы командной строки, которые он распознаёт.

Поддерживаемые параметры командной строки

Все программы Qt автоматически поддерживают набор параметров командной строки, позволяющих изменять способ взаимодействия Qt с системой окон. Некоторые параметры также доступны через переменные окружения, что предпочтительнее, если приложение может запускать подпроцессы графического интерфейса или другие приложения (переменные окружения будут унаследованы дочерними процессами). В случае сомнений используйте переменные окружения.

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

  • -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 их отключает.
  • dpiawareness=[0|1|2] Устанавливает осведомлённость процесса о DPI (см. Высокие разрешения DPI, начиная с Qt 5.4).
  • fontengine=freetype, использует движок шрифтов FreeType.
  • 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 (WinTab) (старая версия, начиная с Qt 5.3).

Следующий параметр доступен для -platform cocoa (на macOS):

  • fontengine=freetype, использует движок шрифтов FreeType.

Дополнительную информацию о параметрах, специфичных для платформы, доступных для встраиваемых платформ Linux, см. в разделе Qt для встраиваемых систем Linux.

См. также arguments() и QGuiApplication::platformName.

[signal] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)

Этот сигнал испускается, когда состояние приложения изменяется.

Эта функция была представлена в Qt 5.2.

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

[signal] void QGuiApplication::commitDataRequest(QSessionManager &manager)

Этот сигнал связан с управлением сессиями. Он испускается, когда QSessionManager хочет, чтобы приложение сохранило все свои данные.

Обычно это означает сохранение всех открытых файлов после получения разрешения от пользователя. Кроме того, вам может потребоваться предоставить способ, которым пользователь может отменить завершение работы.

Не следует завершать приложение внутри этого сигнала. Вместо этого менеджер сессий может или не может сделать это позже, в зависимости от контекста.

Предупреждение: Внутри этого сигнала невозможно взаимодействие с пользователем, если вы не попросите manager об явном разрешении. Подробности и примеры использования см. в QSessionManager::allowsInteraction() и QSessionManager::allowsErrorInteraction().

Примечание: При подключении к этому сигналу следует использовать Qt::DirectConnection.

Эта функция была представлена в Qt 4.2.

См. также setFallbackSessionManagementEnabled(), isSessionRestored(), sessionId(), saveStateRequest(), и Управление сессиями.

[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)

Этот сигнал испускается, когда изменяется окончательный получатель событий, связанных с фокусом. focusObject — новый получатель.

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

[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)

Этот сигнал испускается, когда изменяется фокусированное окно. focusWindow — новое фокусированное окно.

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

[signal] void QGuiApplication::fontChanged(const QFont &font)

Этот сигнал испускается, когда изменяется шрифт приложения.

Эта функция была представлена в Qt 5.11.

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

[signal] void QGuiApplication::fontDatabaseChanged()

Этот сигнал испускается, когда шрифты приложения загружаются или удаляются.

См. также QFontDatabase::addApplicationFont(), QFontDatabase::addApplicationFontFromData(), QFontDatabase::removeAllApplicationFonts(), и QFontDatabase::removeApplicationFont().

[signal] void QGuiApplication::lastWindowClosed()

Этот сигнал испускается из exec(), когда закрывается последнее видимое основное окно (т.е. окно без родителя).

По умолчанию QGuiApplication завершает работу после испускания этого сигнала. Эту функцию можно отключить, установив quitOnLastWindowClosed в false.

См. также QWindow::close() и QWindow::isTopLevel().

[signal] void QGuiApplication::paletteChanged(const QPalette &palette)

Этот сигнал испускается, когда палитра приложения изменяется.

Эта функция была представлена в Qt 5.4.

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

[signal] void QGuiApplication::saveStateRequest(QSessionManager &manager)

Этот сигнал связан с управлением сессиями. Он вызывается, когда менеджер сессий хочет сохранить состояние приложения для будущей сессии.

Например, текстовый редактор создаст временный файл, содержащий текущее содержимое буферов редактирования, положение курсора и другие аспекты текущей сессии редактирования.

Не следует завершать приложение внутри этого сигнала. Вместо этого менеджер сессий может или не может сделать это позже, в зависимости от контекста. Кроме того, большинство менеджеров сессий, скорее всего, запросят сохранённое состояние сразу после запуска приложения. Это позволяет менеджеру сессий узнать о политике перезапуска приложения.

Предупреждение: Внутри этого сигнала невозможно взаимодействие с пользователем, если вы не запросите явного разрешения у менеджера. См. QSessionManager::allowsInteraction() и QSessionManager::allowsErrorInteraction() для получения подробностей.

Примечание: Вы должны использовать Qt::DirectConnection при подключении к этому сигналу.

Данная функция была представлена в Qt 4.2.

См. также isSessionRestored(), sessionId(), commitDataRequest() и Управление сеансами.

[signal] void QGuiApplication::screenAdded(QScreen *screen)

Этот сигнал излучается всякий раз, когда новый экран screen был добавлен в систему.

См. также screens(), primaryScreen и screenRemoved().

[signal] void QGuiApplication::screenRemoved(QScreen *screen)

Этот сигнал излучается всякий раз, когда экран screen удаляется из системы. Это предоставляет возможность управлять окнами на экране, прежде чем Qt вернётся к перемещению их на основной экран.

Данная функция была представлена в Qt 5.4.

См. также screens(), screenAdded(), QObject::destroyed() и QWindow::setScreen().

[virtual] QGuiApplication::~QGuiApplication()

Деструктор приложения.

[static] QWindowList QGuiApplication::allWindows()

Возвращает список всех окон приложения.

Список пуст, если окон нет.

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

[static] Qt::ApplicationState QGuiApplication::applicationState()

Возвращает текущее состояние приложения.

Вы можете реагировать на изменения состояния приложения, чтобы выполнять такие действия, как остановка/возобновление ресурсоёмких задач, освобождение/загрузка ресурсов или сохранение/восстановление данных приложения.

Данная функция была представлена в Qt 5.2.

[static] void QGuiApplication::changeOverrideCursor(const QCursor &cursor)

Изменяет текущий активный курсор переопределения приложения на cursor.

Данная функция не имеет эффекта, если setOverrideCursor() не вызывалась.

См. также setOverrideCursor(), overrideCursor(), restoreOverrideCursor() и QWidget::setCursor().

[static] QClipboard *QGuiApplication::clipboard()

Возвращает объект для взаимодействия с буфером обмена.

[static] bool QGuiApplication::desktopSettingsAware()

Возвращает true если Qt настроен на использование стандартных цветов, шрифтов и т.д. системы; иначе возвращает false. По умолчанию true.

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

qreal QGuiApplication::devicePixelRatio() const

Возвращает наибольшее значение отношения пикселей устройства к экрану, найденное в системе. Это отношение между физическими пикселями и независимыми от устройства пикселями.

Используйте эту функцию только тогда, когда вы не знаете, какое окно вы нацеливаете. Если вы знаете целевое окно, используйте QWindow::devicePixelRatio() вместо этого.

См. также QWindow::devicePixelRatio().

[override virtual protected] bool QGuiApplication::event(QEvent *e)

Переопределяет: QCoreApplication::event(QEvent *e).

[static] int QGuiApplication::exec()

Входит в главный цикл обработки событий и ожидает, пока не будет вызвано exit(), а затем возвращает значение, установленное для exit() (которое равно 0, если exit() вызвано через quit()).

Для начала обработки событий необходимо вызвать эту функцию. Главный цикл обработки событий получает события от системы окон и направляет их виджетам приложения.

Как правило, никакого взаимодействия с пользователем не может произойти до вызова exec().

Чтобы заставить ваше приложение выполнять обработку в режиме ожидания, например, выполняя специальную функцию всякий раз, когда нет ожидающих событий, используйте QTimer с таймаутом 0. Более сложные схемы обработки в режиме ожидания могут быть реализованы с помощью processEvents().

Рекомендуется подключать код очистки к сигналу aboutToQuit(), а не помещать его в функцию вашего приложения main(). Это связано с тем, что на некоторых платформах вызов QApplication::exec() может не возвращаться.

См. также quitOnLastWindowClosed, quit(), exit(), processEvents() и QCoreApplication::exec().

[static] QObject *QGuiApplication::focusObject()

Возвращает QObject в текущем активном окне, который будет конечным получателем событий, связанных с фокусом, таких как события клавиатуры.

[static] QWindow *QGuiApplication::focusWindow()

Возвращает QWindow, который получает события, связанные с фокусом, такие как события клавиатуры.

[static] QFont QGuiApplication::font()

Возвращает шрифт по умолчанию приложения.

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

[static] Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()

Возвращает политику округления коэффициента масштабирования с высоким разрешением.

Данная функция была представлена в Qt 5.14.

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

[static] QInputMethod *QGuiApplication::inputMethod()

возвращает метод ввода.

Метод ввода возвращает свойства о состоянии и позиции виртуальной клавиатуры. Также он предоставляет информацию о позиции текущего фокусированного элемента ввода.

См. также QInputMethod.

[static] bool QGuiApplication::isFallbackSessionManagementEnabled()

Возвращает значение, указывающее, будет ли QGuiApplication использовать резервный механизм управления сеансами.

По умолчанию true.

Если это true и менеджер сеансов разрешает взаимодействие с пользователем, QGuiApplication попытается закрыть окна верхнего уровня после того, как будет выпущен сигнал commitDataRequest(). Если окно не удается закрыть, завершение сеанса будет отменено, и приложение продолжит работу.

Резервный механизм управления сеансами выгоден только приложениям, у которых есть функция «уверены ли вы, что хотите закрыть это окно?» или другая логика, предотвращающая закрытие окна верхнего уровня в зависимости от определенных условий, и которые не реализуют управление сеансами явно. В приложениях, которые реализуют управление сеансами с помощью соответствующего API управления сеансами, резервный механизм управления сеансами вмешивается и может нарушить логику управления сеансами.

Предупреждение: Если все окна закрываются из-за резервного механизма управления сеансами и quitOnLastWindowClosed() имеет значение true, приложение завершится до того, как оно будет явно указано завершить работу через протокол управления сеансами платформы. Это нарушение протокола может помешать менеджеру сеансов платформы сохранить состояние приложения.

Данная функция была представлена в Qt 5.6.

См. также setFallbackSessionManagementEnabled(), QSessionManager::allowsInteraction(), saveStateRequest(), commitDataRequest() и Управление сеансами.

[static] bool QGuiApplication::isLeftToRight()

Возвращает true если направление отображения приложения равно Qt::LeftToRight; в противном случае возвращает false.

См. также layoutDirection() и isRightToLeft().

[static] bool QGuiApplication::isRightToLeft()

Возвращает true если направление отображения приложения равно Qt::RightToLeft; в противном случае возвращает false.

См. также layoutDirection() и isLeftToRight().

END_OF_DOCUMENT_MARKER

bool QGuiApplication::isSavingSession() const

Возвращает true если приложение в данный момент сохраняет сеанс; в противном случае возвращает false.

Это значение возвращается, когда вызываются commitDataRequest() и saveStateRequest(), а также при закрытии окон после этого с помощью управления сеансами.

Эта функция была добавлена в Qt 5.0.

См. также sessionId(), commitDataRequest() и saveStateRequest().

bool QGuiApplication::isSessionRestored() const

Возвращает true если приложение было восстановлено из предыдущего сеанса; в противном случае возвращает false.

См. также sessionId(), commitDataRequest() и saveStateRequest().

[static] Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()

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

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

См. также mouseButtons() и queryKeyboardModifiers().

[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() каждого набора виртуальных "братьев". Если точка соответствует более чем одному набору виртуальных "братьев", возвращается первый найденный. Если вы хотите искать только виртуальных "братьев" определённого экрана (например, "братьев" экрана окна вашего приложения 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::setFallbackSessionManagementEnabled(bool enabled)

Устанавливает, будет ли QGuiApplication использовать резервный механизм управления сеансами в значение enabled.

Эта функция была добавлена в Qt 5.6.

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

[static] void QGuiApplication::setFont(const QFont &font)

Изменяет шрифт по умолчанию приложения на font.

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

END_OF_DOCUMENT_MARKER

[static] void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)

Устанавливает политику округления коэффициента масштабирования высокого разрешения для приложения. Политика policy определяет, как обрабатываются нецелые коэффициенты масштабирования (например, 150% в Windows), для приложений, у которых включена AA_EnableHighDpiScaling.

Два основных варианта — округлять дробные коэффициенты масштабирования до целых или нет. Сохранение коэффициента масштабирования в неизменном виде обеспечит точное соответствие размера пользовательского интерфейса настройкам ОС, но может вызвать ошибки отрисовки, например, при использовании стиля Windows.

Если требуется округление, то необходимо определить тип округления. Поддерживается математически корректное округление, но оно может не давать наилучших визуальных результатов: подумайте, хотите ли вы отображать 1,5x как 1x («малый интерфейс») или как 2x («большой интерфейс»). Полный список всех вариантов см. в перечислении Qt::HighDpiScaleFactorRoundingPolicy.

Эта функция должна быть вызвана до создания объекта приложения и может быть переопределена путём установки переменной окружения QT_SCALE_FACTOR_ROUNDING_POLICY. Свойство QGuiApplication::highDpiScaleFactorRoundingPolicy() будет отражать значения из переменной окружения, если она установлена.

Значение по умолчанию — Qt::HighDpiScaleFactorRoundingPolicy::Round. В Qt для Android значение по умолчанию — Qt::HighDpiScaleFactorRoundingPolicy::PassThrough, что сохраняет историческое поведение предыдущих версий Qt.

Эта функция была добавлена в Qt 5.14.

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

[static] void QGuiApplication::setOverrideCursor(const QCursor &cursor)

Устанавливает курсор переопределения приложения на cursor.

Курсоры переопределения приложения предназначены для отображения пользователю, что приложение находится в специальном состоянии, например, во время операции, которая может занять некоторое время.

Этот курсор будет отображаться во всех виджетах приложения до вызова restoreOverrideCursor() или другого setOverrideCursor().

Курсоры приложения хранятся в внутреннем стеке. setOverrideCursor() помещает курсор в стек, а restoreOverrideCursor() извлекает активный курсор из стека. changeOverrideCursor() изменяет текущий активный курсор переопределения приложения.

Каждый вызов setOverrideCursor() должен в конечном итоге сопровождаться соответствующим вызовом restoreOverrideCursor(), в противном случае стек никогда не будет очищен.

Пример:

QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
calculateHugeMandelbrot();              // lunch time...
QGuiApplication::restoreOverrideCursor();

См. также overrideCursor(), restoreOverrideCursor(), changeOverrideCursor() и QWidget::setCursor().

[static] void QGuiApplication::setPalette(const QPalette &pal)

Изменяет палитру приложения на pal.

Цветовые роли из этой палитры объединяются с системной платформенной темой для формирования окончательной палитры приложения.

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

[static] QStyleHints *QGuiApplication::styleHints()

Возвращает подсказки стиля приложения.

Подсказки стиля содержат набор зависящих от платформы свойств, таких как интервалы двойного щелчка, выбор по всей ширине и другие.

Подсказки можно использовать для более тесной интеграции с базовой платформой.

См. также QStyleHints.

[static] void QGuiApplication::sync()

Функция, которая может использоваться для синхронизации состояния Qt с состоянием системы окон.

Эта функция сначала очистит события Qt, вызвав QCoreApplication::processEvents(), затем плагин платформы синхронизируется с системой окон, и, наконец, события Qt будут доставлены с помощью другого вызова QCoreApplication::processEvents();

Эта функция затратна по времени, и её использование не рекомендуется.

Эта функция была добавлена в Qt 5.2.

[static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)

Возвращает окно верхнего уровня в заданной позиции pos, если таковое имеется.

[static] QWindowList QGuiApplication::topLevelWindows()

Возвращает список окон верхнего уровня в приложении.

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

Документация макросов

qGuiApp

Глобальный указатель, ссылающийся на уникальный объект приложения. Действителен только при использовании объекта типа QGuiApplication.

См. также QCoreApplication::instance() и qApp.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qguiapplication.html

Spec-Zone.ru

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