Spec-Zone.ru › Qt 6.0

Класс 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
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(), palette(), setPalette(), font(), setFont().
Обработка событий exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify().
Окна allWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt().
Расширенная обработка курсора overrideCursor(), setOverrideCursor(), restoreOverrideCursor().
Управление сессиями isSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest().
Разное startingUp(), closingDown().

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

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

[since 5.0] applicationDisplayName : QString

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

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

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

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

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

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

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

void applicationDisplayNameChanged()

См. также applicationName.

[since 5.7] desktopFileName : QString

Это свойство содержит базовое имя записи в меню «Рабочий стол» для данного приложения.

Это имя файла записи в меню «Рабочий стол», без полного пути, представляющее данное приложение в соответствии со спецификацией freedesktop desktop entry.

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

Последнюю версию спецификации freedesktop desktop entry можно получить здесь.

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

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

QString desktopFileName()
void setDesktopFileName(const QString &name)

layoutDirection : Qt::LayoutDirection

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

При запуске системы направление выравнивания по умолчанию зависит от языка приложения.

Сигнал уведомления был введён в Qt 5.4.

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

Qt::LayoutDirection layoutDirection()
void setLayoutDirection(Qt::LayoutDirection direction)

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

void layoutDirectionChanged(Qt::LayoutDirection direction)

См. также QWidget::layoutDirection, isLeftToRight() и isRightToLeft().

[read-only] platformName : const QString

Это свойство содержит имя плагина платформенного интерфейса (QPA).

Плагины 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 с системой окон. Некоторые параметры также доступны через переменные среды, что предпочтительнее, если приложение может запускать дочерние процессы GUI или другие приложения (переменные среды будут унаследованы дочерними процессами). В случае сомнений используйте переменные среды.

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

  • -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()

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

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

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

[static] QInputMethod *QGuiApplication::inputMethod()

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

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

См. также QInputMethod.

[static] bool QGuiApplication::isLeftToRight()

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

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

[static] bool QGuiApplication::isRightToLeft()

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

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

[since 5.0] bool QGuiApplication::isSavingSession() const

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

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

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

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

bool QGuiApplication::isSessionRestored() const

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

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

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

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

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

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

[static] QWindow *QGuiApplication::modalWindow()

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

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

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

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

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

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

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

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

[override virtual] bool QGuiApplication::notify(QObject *object, QEvent *event)

Переопределяет: QCoreApplication::notify(QObject *receiver, QEvent *event).

[static] QCursor *QGuiApplication::overrideCursor()

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

Эта функция возвращает nullptr если курсор приложения не был определён (т.е. внутренний стек курсора пуст).

См. также setOverrideCursor() и restoreOverrideCursor().

[static] QPalette QGuiApplication::palette()

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

Роли, которые не были явно заданы, будут отражать тему платформы системы.

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

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

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

Он не зависит от того, были ли события нажатия клавиш получены этим процессом, что позволяет проверить модификаторы, например, при перемещении окна. Обратите внимание, что в большинстве случаев следует использовать keyboardModifiers(), что быстрее и точнее, поскольку он содержит состояние модификаторов, как они были в момент получения обработанного события.

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

[static] void QGuiApplication::restoreOverrideCursor()

Отменяет последнее действие setOverrideCursor().

Если setOverrideCursor() был вызван дважды, вызов restoreOverrideCursor() активирует первый установленный курсор. Вызов этой функции второй раз восстанавливает исходные курсоры виджетов.

См. также setOverrideCursor() и overrideCursor().

[static, since 5.10] QScreen *QGuiApplication::screenAt(const QPoint &point)

Возвращает экран в точке point или nullptr если точка находится вне любого экрана.

Точка point относится к virtualGeometry() каждого набора виртуальных потомков. Если точка отображается на более чем одном наборе виртуальных потомков, возвращается первый совпавший. Если вы хотите искать только виртуальных потомков экрана (например, потомков экрана окна вашего приложения QWidget::windowHandle()->screen()), используйте QScreen::virtualSiblingAt().

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

[static] QList<QScreen *> QGuiApplication::screens()

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

QString QGuiApplication::sessionId() const

Возвращает идентификатор текущей сессии.

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

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

QString QGuiApplication::sessionKey() const

Возвращает ключ сессии в текущей сессии.

Если приложение было восстановлено из предыдущей сессии, этот ключ такой же, как и при завершении предыдущей сессии.

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

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

[static] void QGuiApplication::setDesktopSettingsAware(bool on)

Устанавливает, должен ли Qt использовать стандартные цвета, шрифты и т.д. системы в значение on. По умолчанию это true.

Эта функция должна быть вызвана до создания объекта QGuiApplication, например так:

int main(int argc, char *argv[])
{
    QApplication::setDesktopSettingsAware(false);
    QApplication app(argc, argv);
    // ...
    return app.exec();
}

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

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

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

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

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

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

Spec-Zone.ru

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