Класс QWindow
Класс QWindow представляет окно в подлежащей системе окон. Подробнее...
| Заголовок: | #include <QWindow> |
| qmake: | QT += gui |
| С момента: | Qt 5.0 |
| Наследует: | QObject и QSurface |
| Наследуется от: |
Этот класс был введён в Qt 5.0.
Открытые типы
| Перечисление | AncestorMode { ExcludeTransients, IncludeTransients } |
| Перечисление | Visibility { Windowed, Minimized, Maximized, FullScreen, AutomaticVisibility, Hidden } |
Свойства
|
Открытые функции
| QWindow(QWindow *parent) | |
| QWindow(QScreen *targetScreen = nullptr) | |
| virtual | ~QWindow() |
| QSize | baseSize() const |
| Qt::ScreenOrientation | contentOrientation() const |
| void | create() |
| QCursor | cursor() const |
| void | destroy() |
| qreal | devicePixelRatio() const |
| QString | filePath() const |
| Qt::WindowFlags | flags() const |
| virtual QObject * | focusObject() const |
| QRect | frameGeometry() const |
| QMargins | frameMargins() const |
| QPoint | framePosition() const |
| QRect | geometry() const |
| int | height() const |
| QIcon | icon() const |
| bool | isActive() const |
| bool | isAncestorOf(const QWindow *child, QWindow::AncestorMode mode = IncludeTransients) const |
| bool | isExposed() const |
| bool | isModal() const |
| bool | isTopLevel() const |
| bool | isVisible() const |
| QPoint | mapFromGlobal(const QPoint &pos) const |
| QPoint | mapToGlobal(const QPoint &pos) const |
| QRegion | mask() const |
| int | maximumHeight() const |
| QSize | maximumSize() const |
| int | maximumWidth() const |
| int | minimumHeight() const |
| QSize | minimumSize() const |
| int | minimumWidth() const |
| Qt::WindowModality | modality() const |
| qreal | opacity() const |
| QWindow * | parent(QWindow::AncestorMode mode) const |
| QWindow * | parent() const |
| QPoint | position() const |
| void | reportContentOrientationChange(Qt::ScreenOrientation orientation) |
| QSurfaceFormat | requestedFormat() const |
| void | resize(const QSize &newSize) |
| void | resize(int w, int h) |
| QScreen * | screen() const |
| void | setBaseSize(const QSize &size) |
| void | setCursor(const QCursor &cursor) |
| void | setFilePath(const QString &filePath) |
| void | setFlag(Qt::WindowType flag, bool on = true) |
| void | setFlags(Qt::WindowFlags flags) |
| void | setFormat(const QSurfaceFormat &format) |
| void | setFramePosition(const QPoint &point) |
| void | setIcon(const QIcon &icon) |
| bool | setKeyboardGrabEnabled(bool grab) |
| void | setMask(const QRegion ®ion) |
| void | setMaximumSize(const QSize &size) |
| void | setMinimumSize(const QSize &size) |
| void | setModality(Qt::WindowModality modality) |
| bool | setMouseGrabEnabled(bool grab) |
| void | setOpacity(qreal level) |
| void | setParent(QWindow *parent) |
| void | setPosition(const QPoint &pt) |
| void | setPosition(int posx, int posy) |
| void | setScreen(QScreen *newScreen) |
| void | setSizeIncrement(const QSize &size) |
| void | setSurfaceType(QSurface::SurfaceType surfaceType) |
| void | setVisibility(QWindow::Visibility v) |
| void | setVulkanInstance(QVulkanInstance *instance) |
| void | setWindowState(Qt::WindowState state) |
| void | setWindowStates(Qt::WindowStates state) |
| QSize | sizeIncrement() const |
| QString | title() const |
| Qt::WindowType | type() const |
| void | unsetCursor() |
| QWindow::Visibility | visibility() const |
| QVulkanInstance * | vulkanInstance() const |
| int | width() const |
| WId | winId() const |
| Qt::WindowState | windowState() const |
| Qt::WindowStates | windowStates() const |
| int | x() const |
| int | y() const |
Реализованные публичные функции
| virtual QSurfaceFormat | format() const override |
| virtual QSize | size() const override |
| virtual QSurface::SurfaceType | surfaceType() const override |
Публичные слоты
| void | alert(int msec) |
| bool | close() |
| void | hide() |
| void | lower() |
| void | raise() |
| void | requestActivate() |
| void | requestUpdate() |
| void | setGeometry(const QRect &rect) |
| void | setGeometry(int posx, int posy, int w, int h) |
| void | setHeight(int arg) |
| void | setMaximumHeight(int h) |
| void | setMaximumWidth(int w) |
| void | setMinimumHeight(int h) |
| void | setMinimumWidth(int w) |
| void | setTitle(const QString &) |
| void | setVisible(bool visible) |
| void | setWidth(int arg) |
| void | setX(int arg) |
| void | setY(int arg) |
| void | show() |
| void | showFullScreen() |
| void | showMaximized() |
| void | showMinimized() |
| void | showNormal() |
Сигналы
| void | activeChanged() |
| void | contentOrientationChanged(Qt::ScreenOrientation orientation) |
| void | focusObjectChanged(QObject *object) |
| void | heightChanged(int arg) |
| void | maximumHeightChanged(int arg) |
| void | maximumWidthChanged(int arg) |
| void | minimumHeightChanged(int arg) |
| void | minimumWidthChanged(int arg) |
| void | modalityChanged(Qt::WindowModality modality) |
| void | opacityChanged(qreal opacity) |
| void | screenChanged(QScreen *screen) |
| void | visibilityChanged(QWindow::Visibility visibility) |
| void | visibleChanged(bool arg) |
| void | widthChanged(int arg) |
| void | windowStateChanged(Qt::WindowState windowState) |
| void | windowTitleChanged(const QString &title) |
| void | xChanged(int arg) |
| void | yChanged(int arg) |
Статические публичные члены
| QWindow * | fromWinId(WId id) |
Защищённые функции
| виртуальный void | exposeEvent(QExposeEvent *ev) |
| виртуальный void | focusInEvent(QFocusEvent *ev) |
| виртуальный void | focusOutEvent(QFocusEvent *ev) |
| виртуальный void | hideEvent(QHideEvent *ev) |
| виртуальный void | keyPressEvent(QKeyEvent *ev) |
| виртуальный void | keyReleaseEvent(QKeyEvent *ev) |
| виртуальный void | mouseDoubleClickEvent(QMouseEvent *ev) |
| виртуальный void | mouseMoveEvent(QMouseEvent *ev) |
| виртуальный void | mousePressEvent(QMouseEvent *ev) |
| виртуальный void | mouseReleaseEvent(QMouseEvent *ev) |
| виртуальный void | moveEvent(QMoveEvent *ev) |
| виртуальный bool | nativeEvent(const QByteArray &eventType, void *message, long *result) |
| виртуальный void | resizeEvent(QResizeEvent *ev) |
| виртуальный void | showEvent(QShowEvent *ev) |
| виртуальный void | tabletEvent(QTabletEvent *ev) |
| виртуальный void | touchEvent(QTouchEvent *ev) |
| виртуальный void | wheelEvent(QWheelEvent *ev) |
Реализованные защищенные функции
| виртуальный bool | event(QEvent *ev) override |
Подробное описание
Окно, которому задан родитель, становится родственным дочерним окном родительского окна.
В приложении обычно используются QWidget или QQuickView для интерфейса пользователя, а не QWindow напрямую. Тем не менее, можно напрямую отображать данные в QWindow с помощью QBackingStore или QOpenGLContext, когда требуется свести к минимуму зависимости или когда необходимо использовать OpenGL напрямую. Примеры «Raster Window» и «OpenGL Window» являются полезными справочными примерами того, как отображать данные в QWindow с использованием того или иного подхода.
Управление ресурсами
Окна могут потенциально потреблять много памяти. Обычно измеряется ширина умноженная на высоту умноженная на глубину цвета. Окно может также включать несколько буферов для поддержки двойной и тройной буферизации, а также буферов глубины и трафарета. Для освобождения ресурсов памяти окна вызовите функцию destroy().
Ориентация содержимого
QWindow имеет reportContentOrientationChange(), которую можно использовать для указания расположения содержимого окна относительно экрана. Ориентация содержимого — это просто подсказка для системы окон о том, в какой ориентации находится содержимое окна. Она полезна, когда вы хотите сохранить тот же размер окна, но повернуть содержимое вместо этого, особенно при анимации поворота между разными ориентациями. Система окон может использовать это значение для определения расположения всплывающих окон или диалоговых окон.
Видимость и экспозиция системы окон
По умолчанию окно не видно, и вы должны вызвать setVisible(true) или show() или аналогичную функцию, чтобы сделать его видимым. Чтобы снова скрыть окно, вызовите setVisible(false) или hide(). Свойство visible описывает состояние, в котором приложение хочет видеть окно. В зависимости от базовой системы видимое окно может все равно не отображаться на экране. Например, оно может быть закрыто другими непрозрачными окнами или перемещено за пределы физической области экрана. В системах окон, которые имеют уведомления об экспозиции, свойство isExposed() описывает, должно ли окно рассматриваться как непосредственно видимое на экране. Функция exposeEvent() вызывается всякий раз, когда область окна становится недействительной, например, из-за изменения экспозиции в системе окон. В системах окон, которые не делают эту информацию видимой для приложения, isExposed() просто вернет то же значение, что и isVisible().
QWindow::Visibility, запрошенная через visibility(), — это API для удобства, объединяющее функции visible() и windowStates().
Отображение
Существует два API Qt, которые можно использовать для отображения содержимого в окне: QBackingStore для отображения с помощью QPainter и вывода содержимого в окно типа QSurface::RasterSurface, и QOpenGLContext для отображения с помощью OpenGL в окно типа QSurface::OpenGLSurface.
Приложение может начать отображение, как только isExposed() вернет true, и может продолжать отображение до тех пор, пока isExposed() не вернет false. Чтобы узнать, когда isExposed() меняется, переопределите exposeEvent(). Окно всегда получит событие изменения размера перед первым событием expose.
Начальная геометрия
Если ширина и высота окна не инициализированы, окно получит разумную геометрию по умолчанию от платформенного окна. Если положение не инициализировано, платформа позволит системе окон позиционировать окно. Например, в X11 диспетчер окон обычно выполняет некое умное позиционирование, чтобы попытаться избежать появления новых окон, полностью закрывающих существующие окна. Однако setGeometry() инициализирует и положение, и размер, поэтому, если вам нужен фиксированный размер, но автоматическое положение, вам следует вызвать resize() или setWidth() и setHeight() вместо этого.
Документация по типам членов
Перечисление QWindow::AncestorMode
Это перечисление используется для управления тем, должны ли временные родительские элементы рассматриваться как предки.
| Постоянная | Значение | Описание |
|---|---|---|
QWindow::ExcludeTransients |
0 |
Временные родительские элементы не рассматриваются как предки. |
QWindow::IncludeTransients |
1 |
Временные родительские элементы рассматриваются как предки. |
Перечисление QWindow::Visibility
Это перечисление описывает, какую часть экрана занимает или должно занимать окно.
| Постоянная | Значение | Описание |
|---|---|---|
QWindow::Windowed |
2 |
Окно занимает часть экрана, но не обязательно весь экран. Это состояние будет появляться только на системах с поддержкой одновременного отображения нескольких окон. В этом состоянии пользователь может перемещать и изменять размер окна вручную, если это разрешено параметрами WindowFlags и поддерживается системой окон. |
QWindow::Minimized |
3 |
Окно сворачивается в значок или запись на панели задач, панели задач, списке задач или рабочем столе, в зависимости от того, как система окон обрабатывает сворачиваемые окна. |
QWindow::Maximized |
4 |
Окно занимает весь экран, и строка заголовка всё ещё видна. На большинстве систем окон это состояние достигается щелчком по кнопке максимизации на панели инструментов. |
QWindow::FullScreen |
5 |
Окно занимает весь экран, не изменяет размер и не имеет строки заголовка. На некоторых платформах, которые не поддерживают одновременное отображение нескольких окон, это может быть обычное состояние видимости, когда окно не скрыто. |
QWindow::AutomaticVisibility |
1 |
Это означает присвоение окну состояния видимости по умолчанию, которое может быть полноэкранным или оконным в зависимости от платформы. Его можно задать параметром функции setVisibility, но он никогда не будет считываться из доступа к видимости. |
QWindow::Hidden |
0 |
Окно не отображается, но может запоминать скрытую видимость, которую можно восстановить, установив значение AutomaticVisibility. |
Этот перечисление был добавлен или изменён в Qt 5.1.
Документация по свойствам
active : const bool
Это свойство хранит статус активности окна
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| bool | isActive() const |
Сигнал-уведомитель:
| void | activeChanged() |
См. также requestActivate().
contentOrientation : Qt::ScreenOrientation
Это свойство хранит ориентацию содержимого окна
Это подсказка для менеджера окон, в случае, если ему необходимо отобразить дополнительное содержимое, например всплывающие окна, диалоги, строки состояния или подобное, относительно окна.
Рекомендуемая ориентация - QScreen::orientation(), но приложение не обязано поддерживать все возможные ориентации и, следовательно, может отказаться от учета текущей ориентации экрана.
Разница между ориентацией окна и содержимым определяет, на сколько градусов следует повернуть содержимое. QScreen::angleBetween(), QScreen::transformBetween() и QScreen::mapBetween() могут быть использованы для вычисления необходимого преобразования.
Значение по умолчанию - Qt::PrimaryOrientation
Функции доступа:
| Qt::ScreenOrientation | contentOrientation() const |
| void | reportContentOrientationChange(Qt::ScreenOrientation orientation) |
Сигнал-уведомитель:
| void | contentOrientationChanged(Qt::ScreenOrientation orientation) |
flags : Qt::WindowFlags
Это свойство хранит флаги окна
Флаги окна управляют внешним видом окна в системе окон, является ли оно диалоговым окном, всплывающим окном или обычным окном, и должно ли оно иметь строку заголовка и т.д.
Фактические флаги окна могут отличаться от флагов, установленных с помощью setFlags(), если запрошенные флаги не могут быть выполнены.
Функции доступа:
| Qt::WindowFlags | flags() const |
| void | setFlags(Qt::WindowFlags flags) |
См. также setFlag().
height : int
Это свойство хранит высоту геометрии окна
Функции доступа:
| int | height() const |
| void | setHeight(int arg) |
Сигнал-уведомитель:
| void | heightChanged(int arg) |
maximumHeight : int
Это свойство хранит максимальную высоту геометрии окна
Функции доступа:
| int | maximumHeight() const |
| void | setMaximumHeight(int h) |
Сигнал-уведомитель:
| void | maximumHeightChanged(int arg) |
maximumWidth : int
Это свойство хранит максимальную ширину геометрии окна
Функции доступа:
| int | maximumWidth() const |
| void | setMaximumWidth(int w) |
Сигнал-уведомитель:
| void | maximumWidthChanged(int arg) |
minimumHeight : int
Это свойство хранит минимальную высоту геометрии окна
Функции доступа:
| int | minimumHeight() const |
| void | setMinimumHeight(int h) |
Сигнал-уведомитель:
| void | minimumHeightChanged(int arg) |
minimumWidth : int
Это свойство хранит минимальную ширину геометрии окна
Функции доступа:
| int | minimumWidth() const |
| void | setMinimumWidth(int w) |
Сигнал-уведомитель:
| void | minimumWidthChanged(int arg) |
modality : Qt::WindowModality
Это свойство хранит модальность окна
Модальное окно предотвращает получение событий ввода другими окнами. Qt поддерживает два типа модальности: Qt::WindowModal и Qt::ApplicationModal.
По умолчанию это свойство имеет значение Qt::NonModal
Функции доступа:
| Qt::WindowModality | modality() const |
| void | setModality(Qt::WindowModality modality) |
Сигнал-уведомитель:
| void | modalityChanged(Qt::WindowModality modality) |
См. также Qt::WindowModality.
opacity : qreal
Это свойство хранит непрозрачность окна в системе окон.
Если система окон поддерживает непрозрачность окна, это может быть использовано для плавного появления и исчезновения окна или для того, чтобы сделать его полупрозрачным.
Значение 1,0 или выше считается полностью непрозрачным, а значение 0,0 или ниже — полностью прозрачным. Значения между ними представляют различные уровни полупрозрачности между двумя крайностями.
Значение по умолчанию — 1,0.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| qreal | opacity() const |
| void | setOpacity(qreal level) |
Сигнал-уведомитель:
| void | opacityChanged(qreal opacity) |
title : QString
Это свойство хранит заголовок окна в системе окон
Заголовок окна может отображаться в области заголовка оконных украшений, в зависимости от системы окон и флагов окна. Он также может использоваться системой окон для идентификации окна в других контекстах, например, в переключателе задач.
Функции доступа:
| QString | title() const |
| void | setTitle(const QString &) |
Сигнал-уведомитель:
| void | windowTitleChanged(const QString &title) |
См. также flags().
visibility : Visibility
Это свойство хранит состояние занимаемости экрана окном
Видимость определяет, должно ли окно отображаться в системе окон как обычное, свёрнутое, максимализированное, полноэкранное или скрытое.
Установить видимость в AutomaticVisibility означает присвоение окну состояния видимости по умолчанию, которое может быть полноэкранным или оконным в зависимости от платформы. При чтении свойства видимости всегда возвращается фактическое состояние, а не AutomaticVisibility.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| QWindow::Visibility | visibility() const |
| void | setVisibility(QWindow::Visibility v) |
Сигнал уведомления:
| void | visibilityChanged(QWindow::Visibility visibility) |
visible : bool
Это свойство указывает, отображается ли окно или нет.
Это свойство контролирует видимость окна в системе окон.
По умолчанию окно не отображается, необходимо вызвать setVisible(true), или show() или аналогичную функцию, чтобы сделать его видимым.
Функции доступа:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Сигнал уведомления:
| void | visibleChanged(bool arg) |
См. также show().
width : int
Это свойство содержит ширину геометрии окна.
Функции доступа:
| int | width() const |
| void | setWidth(int arg) |
Сигнал уведомления:
| void | widthChanged(int arg) |
x : int
Это свойство содержит позицию x геометрии окна.
Функции доступа:
| int | x() const |
| void | setX(int arg) |
Сигнал уведомления:
| void | xChanged(int arg) |
y : int
Это свойство содержит позицию y геометрии окна.
Функции доступа:
| int | y() const |
| void | setY(int arg) |
Сигнал уведомления:
| void | yChanged(int arg) |
Документация по членам функции
QWindow::QWindow(QWindow *parent)
Создаёт окно как дочернее окно указанного окна parent.
Окно будет вложено внутрь родительского окна, его координаты относительны к родителю.
Экран наследуется от родительского.
См. также setParent().
QWindow::QWindow(QScreen *targetScreen = nullptr)
Создаёт окно верхнего уровня на экране targetScreen.
Окно не отображается до вызова setVisible(true), show() или аналогичных функций.
См. также setScreen().
[slot] void QWindow::alert(int msec)
Приводит к отображению уведомления на msec миллисекунд. Если msec равно 0 (значение по умолчанию), то уведомление отображается бесконечно до тех пор, пока окно снова не станет активным. Эта функция не действует на активном окне.
В состоянии уведомления окно указывает, что требует внимания, например, мигая или подпрыгивая записью в панели задач.
Эта функция была добавлена в Qt 5.1.
[slot] bool QWindow::close()
Закрывает окно.
Закрывает окно, фактически вызывая destroy(), и потенциально завершая приложение. Возвращает true при успехе, false, если у окна есть родительское окно (в этом случае должно быть закрыто окно верхнего уровня).
См. также destroy() и QGuiApplication::quitOnLastWindowClosed().
[signal] void QWindow::focusObjectChanged(QObject *object)
Этот сигнал излучается, когда конечный получатель событий, связанных с фокусом, изменяется на object.
См. также focusObject().
[slot] void QWindow::hide()
Скрывает окно.
Эквивалентно вызову setVisible(false).
См. также show() и setVisible().
[slot] void QWindow::lower()
Опускает окно в системе окон.
Запрашивает, чтобы окно было опущено и отображалось ниже других окон.
[signal] void QWindow::modalityChanged(Qt::WindowModality modality)
Этот сигнал излучается, когда свойство Qwindow::modality изменяется на modality.
Примечание: Сигнал уведомления для свойства modality.
[slot] void QWindow::raise()
Приподнимает окно в системе окон.
Запрашивает, чтобы окно было поднято и отображалось над другими окнами.
[slot] void QWindow::requestActivate()
Запрашивает активацию окна, то есть получение фокуса клавиатуры.
См. также isActive(), QGuiApplication::focusWindow() и QWindowsWindowFunctions::setWindowActivationBehavior().
[slot] void QWindow::requestUpdate()
Планирует событие QEvent::UpdateRequest для доставки в это окно.
Событие доставляется синхронно с обновлением отображения на платформах, где это возможно. В противном случае событие доставляется после задержки в 5 мс. Дополнительное время необходимо для предоставления циклу событий некоторого времени простоя для сбора системных событий, и может быть переопределено с помощью переменной окружения QT_QPA_UPDATE_IDLE_TIME.
При работе с анимациями эта функция должна вызываться один раз после завершения отрисовки. Многократный вызов этой функции приведёт к доставке в окно только одного события.
Подклассы QWindow должны переопределить event(), перехватить событие и вызвать код отрисовки приложения, а затем вызвать реализацию базового класса.
Примечание: Реализация подкласса event() должна вызывать реализацию базового класса, если он абсолютно уверен, что событие не нужно обрабатывать базовому классу. Например, реализация по умолчанию для этой функции полагается на события QEvent::Timer. Их отфильтровывание, следовательно, нарушит доставку событий обновления.
Эта функция была добавлена в Qt 5.5.
[signal] void QWindow::screenChanged(QScreen *screen)
Этот сигнал излучается, когда экран окна screen изменяется, либо явно с помощью setScreen(), либо автоматически, когда экран окна удаляется.
[slot] void QWindow::setGeometry(const QRect &rect)
Устанавливает геометрию окна, исключая рамку окна, равную rect.
Геометрия относится к virtualGeometry() экрана.
См. также geometry().
[slot] void QWindow::setGeometry(int posx, int posy, int w, int h)
Устанавливает геометрию окна, исключая рамку окна, к прямоугольнику, созданному из posx, posy, w и h.
Геометрия относится к virtualGeometry() экрана.
См. также geometry().
END_OF_DOCUMENT_MARKER
[slot] void QWindow::show()
Отображает окно.
Это эквивалентно вызову showFullScreen(), showMaximized() или showNormal(), в зависимости от поведения платформы по умолчанию для типа окна и флагов.
См. также showFullScreen(), showMaximized(), showNormal(), hide(), QStyleHints::showIsFullScreen() и flags().
[slot] void QWindow::showFullScreen()
Отображает окно в полноэкранном режиме.
Эквивалентно вызову setWindowStates(Qt::WindowFullScreen) и затем setVisible(true).
См. также setWindowStates() и setVisible().
[slot] void QWindow::showMaximized()
Отображает окно в максимальном режиме.
Эквивалентно вызову setWindowStates(Qt::WindowMaximized) и затем setVisible(true).
См. также setWindowStates() и setVisible().
[slot] void QWindow::showMinimized()
Отображает окно в свёрнутом режиме.
Эквивалентно вызову setWindowStates(Qt::WindowMinimized) и затем setVisible(true).
См. также setWindowStates() и setVisible().
[slot] void QWindow::showNormal()
Отображает окно в нормальном режиме, то есть ни максимизированным, ни свёрнутым, ни в полноэкранном режиме.
Эквивалентно вызову setWindowStates(Qt::WindowNoState) и затем setVisible(true).
См. также setWindowStates() и setVisible().
[signal] void QWindow::windowStateChanged(Qt::WindowState windowState)
Этот сигнал излучается, когда состояние окна windowState изменяется, либо явно установлено с помощью setWindowStates(), либо автоматически при нажатии пользователем одной из кнопок заголовка или другими способами.
[virtual] QWindow::~QWindow()
Удаляет окно.
QSize QWindow::baseSize() const
Возвращает базовый размер окна.
См. также setBaseSize().
void QWindow::create()
Выделяет ресурсы платформы, связанные с окном.
В этот момент формат поверхности, установленный с помощью setFormat(), разрешается в фактическую нативную поверхность. Однако окно остаётся скрытым до вызова setVisible().
Обратите внимание, что обычно нет необходимости вызывать эту функцию напрямую, так как она будет неявно вызываться show(), setVisible() и другими функциями, которым требуется доступ к ресурсам платформы.
Вызовите destroy(), чтобы освободить ресурсы платформы при необходимости.
См. также destroy().
QCursor QWindow::cursor() const
Форма курсора для этого окна
См. также setCursor() и unsetCursor().
void QWindow::destroy()
Освобождает нативные ресурсы платформы, связанные с этим окном.
См. также create().
qreal QWindow::devicePixelRatio() const
Возвращает отношение между физическими пикселями и пикселями, независимыми от устройства, для окна. Это значение зависит от экрана, на котором находится окно, и может измениться при перемещении окна.
Общие значения — 1,0 на обычных дисплеях и 2,0 на дисплеях Apple «ретина».
Примечание: Для окон, не поддерживаемых окном платформы, то есть когда create() не вызывалось, функция обращается к отношению пикселей устройства связанного QScreen.
См. также QScreen::devicePixelRatio().
[override virtual protected] bool QWindow::event(QEvent *ev)
Переопределяет: QObject::event(QEvent *e).
Переопределите для обработки любого события (ev), отправленного окну. Возвратите true, если событие было распознано и обработано.
Не забудьте вызвать версию базового класса, если вы хотите, чтобы события мыши, события клавиатуры, события изменения размера и т. д. обрабатывались как обычно.
[virtual protected] void QWindow::exposeEvent(QExposeEvent *ev)
Событие expose (ev) отправляется системой окон, когда область окна становится недействительной, например, из-за изменения видимости в системе окон.
Приложение может начать отрисовку в окне с помощью QBackingStore и QOpenGLContext, как только получит exposeEvent(), при условии, что isExposed() равно true.
Если окно перемещается за пределы экрана, полностью скрывается другим окном, минимизируется или аналогично, эта функция может быть вызвана, а значение isExposed() может измениться на false. В этом случае приложение должно остановить свою отрисовку, поскольку оно больше не отображается пользователю.
Событие изменения размера всегда отправляется перед событием expose в первый раз, когда окно отображается.
См. также isExposed().
QString QWindow::filePath() const
Имя файла, который представляет это окно.
См. также setFilePath().
[virtual protected] void QWindow::focusInEvent(QFocusEvent *ev)
Переопределите для обработки событий получения фокуса (ev).
События получения фокуса отправляются, когда окно получает фокус клавиатуры.
См. также focusOutEvent().
[virtual] QObject *QWindow::focusObject() const
Возвращает QObject, который будет конечным получателем событий, связанных с фокусом, таких как события клавиатуры.
[virtual protected] void QWindow::focusOutEvent(QFocusEvent *ev)
Переопределите для обработки событий потери фокуса (ev).
События потери фокуса отправляются, когда окно теряет фокус клавиатуры.
См. также focusInEvent().
[override virtual] QSurfaceFormat QWindow::format() const
Переопределяет: QSurface::format() const.
Возвращает фактический формат этого окна.
После создания окна эта функция вернёт фактический формат поверхности окна. Он может отличаться от запрошенного формата, если платформа не смогла выполнить запрошенный формат. Он также может быть супермножеством, например, определённые размеры буфера могут быть больше, чем запрошенные.
Примечание: В зависимости от платформы, некоторые значения в этом формате поверхности могут всё ещё содержать запрошенные значения, то есть значения, переданные в setFormat(). Типичные примеры — версия OpenGL, профиль и опции. Они могут не обновляться во время create(), так как они специфичны для контекста, и одно окно может использоваться вместе с несколькими контекстами на протяжении всего своего жизненного цикла. Используйте формат() QOpenGLContext для запроса таких значений вместо этого.
См. также setFormat(), create(), requestedFormat() и QOpenGLContext::format().
QRect QWindow::frameGeometry() const
Возвращает геометрию окна, включая рамку окна.
Геометрия относится к virtualGeometry() экрана.
См. также geometry() и frameMargins().
QMargins QWindow::frameMargins() const
Возвращает отступы рамки окна, окружающие окно.
См. также geometry() и frameGeometry().
QPoint QWindow::framePosition() const
Возвращает позицию верхнего левого угла окна, включая рамку окна.
Возвращает то же значение, что и frameGeometry().topLeft().
См. также setFramePosition(), geometry() и frameGeometry().
[static] QWindow *QWindow::fromWinId(WId id)
Создаёт локальное представление окна, созданного другим процессом или с помощью нативных библиотек ниже Qt.
Учитывая дескриптор id для родного окна, этот метод создаёт объект QWindow, который можно использовать для представления окна при вызове методов, таких как setParent() и setTransientParent().
Это может быть использовано на платформах, которые поддерживают это, для встраивания QWindow внутрь родного окна или для встраивания родного окна внутрь QWindow.
Если родные окна не поддерживаются или встраивание родного окна в плагине платформы не удалось, эта функция возвращает nullptr.
Примечание: Полученный QWindow не должен использоваться для манипулирования базовым родным окном (кроме смены родительского окна), или для наблюдения за изменениями состояния родного окна. Любая поддержка таких операций случайная, сильно зависит от платформы и не тестировалась.
См. также setParent().
QRect QWindow::geometry() const
Возвращает геометрию окна, исключая рамку.
Геометрия относится к virtualGeometry() экрана.
См. также setGeometry(), frameMargins() и frameGeometry().
[virtual protected] void QWindow::hideEvent(QHideEvent *ev)
Переопределите этот метод для обработки событий скрытия (ev).
Функция вызывается, когда окно запросило скрытие в системе окон.
QIcon QWindow::icon() const
Возвращает значок окна в системе окон.
См. также setIcon().
bool QWindow::isActive() const
Возвращает true, если окно должно отображаться активным с точки зрения стиля.
Это относится к окну, имеющему фокус ввода, а также к окнам, которые находятся в той же цепочке родительских/временных родительских окон, что и окно с фокусом.
Для получения окна, имеющего фокус в данный момент, используйте QGuiApplication::focusWindow().
Примечание: Метод-геттер для свойства active.
bool QWindow::isAncestorOf(const QWindow *child, QWindow::AncestorMode mode = IncludeTransients) const
Возвращает true, если окно является предком данного child. Если mode равен IncludeTransients, то временные родители также считаются предками.
bool QWindow::isExposed() const
Возвращает, отображено ли это окно в системе окон.
Когда окно не отображается, оно показано приложением, но ещё не отображается в системе окон, поэтому приложение должно минимизировать рендеринг и другие графические действия.
Событие exposeEvent() отправляется каждый раз, когда это значение меняется.
См. также exposeEvent().
bool QWindow::isModal() const
Возвращает, является ли окно модальным.
Модальное окно предотвращает получение ввода другими окнами.
См. также QWindow::modality.
bool QWindow::isTopLevel() const
Возвращает, является ли окно верхним уровнем, т.е. не имеет родительского окна.
[virtual protected] void QWindow::keyPressEvent(QKeyEvent *ev)
Переопределите этот метод для обработки событий нажатия клавиш (ev).
См. также keyReleaseEvent().
[virtual protected] void QWindow::keyReleaseEvent(QKeyEvent *ev)
Переопределите этот метод для обработки событий отпускания клавиш (ev).
См. также keyPressEvent().
QPoint QWindow::mapFromGlobal(const QPoint &pos) const
Преобразует глобальные координаты экрана pos в координаты окна.
См. также mapToGlobal().
QPoint QWindow::mapToGlobal(const QPoint &pos) const
Преобразует координаты окна pos в глобальные координаты экрана. Например, mapToGlobal(QPoint(0,0)) вернёт глобальные координаты левого верхнего пикселя окна.
См. также mapFromGlobal().
QRegion QWindow::mask() const
Возвращает маску, установленную для окна.
Маска является подсказкой для системы окон, что приложение не хочет получать ввод мыши или касания вне заданной области.
См. также setMask().
QSize QWindow::maximumSize() const
Возвращает максимальный размер окна.
См. также setMaximumSize().
QSize QWindow::minimumSize() const
Возвращает минимальный размер окна.
См. также setMinimumSize().
[virtual protected] void QWindow::mouseDoubleClickEvent(QMouseEvent *ev)
Переопределите этот метод для обработки событий двойного щелчка мыши (ev).
См. также mousePressEvent() и QStyleHints::mouseDoubleClickInterval().
[virtual protected] void QWindow::mouseMoveEvent(QMouseEvent *ev)
Переопределите этот метод для обработки событий перемещения мыши (ev).
[virtual protected] void QWindow::mousePressEvent(QMouseEvent *ev)
Переопределите этот метод для обработки событий нажатия мыши (ev).
См. также mouseReleaseEvent().
[virtual protected] void QWindow::mouseReleaseEvent(QMouseEvent *ev)
Переопределите этот метод для обработки событий отпускания мыши (ev).
См. также mousePressEvent().
[virtual protected] void QWindow::moveEvent(QMoveEvent *ev)
Переопределите этот метод для обработки событий перемещения окна (ev).
[virtual protected] bool QWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
Переопределите этот метод для обработки событий, зависящих от платформы. Получит eventType, message и result.
Это может сделать ваше приложение непереносимым.
Должен возвращать true только в том случае, если событие было обработано.
QWindow *QWindow::parent(QWindow::AncestorMode mode) const
Возвращает родительское окно, если таковое имеется.
Если mode равен IncludeTransients, то возвращается временный родитель, если родителя нет.
Окно без родителя известно как окно верхнего уровня.
Эта функция была введена в Qt 5.9.
См. также setParent().
QWindow *QWindow::parent() const
Возвращает родительское окно, если оно есть.
Окно без родителя известно как окно верхнего уровня.
QPoint QWindow::position() const
Возвращает положение окна на рабочем столе, исключая любую рамку окна.
См. также setPosition().
QSurfaceFormat QWindow::requestedFormat() const
Возвращает запрошенный формат поверхности этого окна.
Если запрошенный формат не поддерживался реализацией платформы, requestedFormat будет отличаться от фактического формата окна.
Это значение задаётся с помощью setFormat().
См. также setFormat() и format().
void QWindow::resize(const QSize &newSize)
Устанавливает размер окна, исключая рамку, на newSize.
См. также size() и geometry().
void QWindow::resize(int w, int h)
Устанавливает размер окна, исключая рамку, на QSize, созданную из ширины w и высоты h.
См. также size() и geometry().
[virtual protected] void QWindow::resizeEvent(QResizeEvent *ev)
Переопределите этот метод для обработки событий изменения размера (ev).
Событие resize вызывается всякий раз, когда окно изменяет размер в системе окон, либо напрямую через систему окон, подтверждающую запрос setGeometry() или resize(), либо косвенно при ручном изменении размера окна пользователем.
QScreen *QWindow::screen() const
Возвращает экран, на котором отображается окно, или null, если такого нет.
Для дочерних окон возвращается экран соответствующего окна верхнего уровня.
См. также setScreen() и QScreen::virtualSiblings().
void QWindow::setBaseSize(const QSize &size)
Устанавливает базовый размер size окна.
Базовый размер используется для расчёта подходящего размера окна, если окно определяет sizeIncrement().
См. также setMinimumSize(), setMaximumSize(), setSizeIncrement() и baseSize().
void QWindow::setCursor(const QCursor &cursor)
Устанавливает форму курсора для данного окна.
Курсор мыши cursor примет эту форму, когда он находится над этим окном, если не установлен переопределяющий курсор. Список предопределённых объектов курсора см. в списке.
Если курсор не установлен или после вызова unsetCursor(), используется курсор родительского окна.
По умолчанию курсор имеет форму Qt::ArrowCursor.
Некоторые реализации оконных систем могут сбрасывать курсор, если он покидает окно, даже если мышь захвачена. Если вы хотите, чтобы курсор устанавливался для всех окон, даже при нахождении за пределами окна, рассмотрите QGuiApplication::setOverrideCursor().
См. также cursor() и QGuiApplication::setOverrideCursor().
void QWindow::setFilePath(const QString &filePath)
Устанавливает имя файла, который представляет это окно.
Система окон может использовать filePath для отображения пути к документу, представляемому этим окном, в строке заголовка.
См. также filePath().
void QWindow::setFlag(Qt::WindowType flag, bool on = true)
Устанавливает флаг окна flag, если on имеет значение true; в противном случае очищает флаг.
Эта функция была добавлена в Qt 5.9.
См. также setFlags(), flags() и type().
void QWindow::setFormat(const QSurfaceFormat &format)
Устанавливает формат поверхности окна format.
Формат определяет такие свойства, как глубина цвета, альфа, размер буфера глубины и трафарета и т. д. Например, чтобы задать окну прозрачный фон (при условии, что система окон поддерживает композитинг и что другое содержимое в окне не делает его непрозрачным):
QSurfaceFormat format; format.setAlphaBufferSize(8); window.setFormat(format);
Формат поверхности будет решён в функции create(). Вызов этой функции после вызова create() не будет повторно решать формат поверхности родной поверхности.
Если формат не установлен явно через эту функцию, будет использован формат, возвращаемый QSurfaceFormat::defaultFormat(). Это означает, что при наличии нескольких окон отдельные вызовы этой функции могут быть заменены одним вызовом QSurfaceFormat::setDefaultFormat() перед созданием первого окна.
См. также format(), create(), destroy() и QSurfaceFormat::setDefaultFormat().
void QWindow::setFramePosition(const QPoint &point)
Устанавливает положение верхнего левого угла окна (point), включая рамку.
Положение относительно virtualGeometry() экрана.
См. также framePosition(), setGeometry() и frameGeometry().
void QWindow::setIcon(const QIcon &icon)
Устанавливает значок окна icon в системе окон.
Значок окна может использоваться системой окон, например, для украшения окна и/или в переключателе задач.
Примечание: На macOS значок в строке заголовка окна предназначен для окон, представляющих документы, и будет отображаться только в том случае, если также установлен путь к файлу.
См. также icon() и setFilePath().
bool QWindow::setKeyboardGrabEnabled(bool grab)
Устанавливает, должен ли быть включён захват клавиатуры (grab).
Если возвращаемое значение true, окно получает все события клавиш до вызова setKeyboardGrabEnabled(false); другие окна не получают никаких событий клавиш вообще. События мыши не затрагиваются. Используйте setMouseGrabEnabled(), если вы хотите захватить и их.
См. также setMouseGrabEnabled().
void QWindow::setMask(const QRegion ®ion)
Устанавливает маску окна.
Маска — это подсказка для системы окон о том, что приложение не хочет получать события мыши или сенсорного ввода за пределами заданной области region.
Менеджер окон может или не может отображать любые области окна, не включённые в маску, поэтому приложение несёт ответственность за установку прозрачности областей, не являющихся частью маски.
См. также mask().
void QWindow::setMaximumSize(const QSize &size)
Устанавливает максимальный размер окна.
Это подсказка для менеджера окон, чтобы предотвратить изменение размера, превышающего указанный size.
См. также setMinimumSize() и maximumSize().
void QWindow::setMinimumSize(const QSize &size)
Устанавливает минимальный размер окна.
Это подсказка для менеджера окон, чтобы предотвратить изменение размера, меньшего указанного size.
См. также setMaximumSize() и minimumSize().
bool QWindow::setMouseGrabEnabled(bool grab)
Устанавливает, должен ли быть включён захват мыши (grab).
Если возвращаемое значение true, окно получает все события мыши до вызова setMouseGrabEnabled(false); другие окна не получают никаких событий мыши вообще. События клавиатуры не затрагиваются. Используйте setKeyboardGrabEnabled(), если вы хотите захватить и их.
См. также setKeyboardGrabEnabled().
void QWindow::setParent(QWindow *parent)
Устанавливает родительское окно parent. Это приведёт к тому, что система окон будет управлять обрезкой окна, поэтому оно будет обрезано до родительского окна parent.
Установка parent в nullptr сделает окно окном верхнего уровня.
Если parent — это окно, созданное с помощью fromWinId(), текущее окно будет вложено внутрь parent, если платформа это поддерживает.
См. также parent().
void QWindow::setPosition(const QPoint &pt)
Устанавливает положение окна на рабочем столе в pt.
Положение относительно virtualGeometry() его экрана.
См. также position().
void QWindow::setPosition(int posx, int posy)
Устанавливает положение окна на рабочем столе в posx, posy.
Положение относительно virtualGeometry() его экрана.
См. также position().
void QWindow::setScreen(QScreen *newScreen)
Устанавливает экран, на котором должно быть отображено окно.
Если окно уже создано, оно будет пересоздано на newScreen.
Примечание: Если экран является частью виртуального рабочего стола с несколькими экранами, окно не переместится автоматически на newScreen. Для размещения окна относительно экрана используйте положение topLeft() экрана.
Эта функция работает только для окон верхнего уровня.
См. также screen() и QScreen::virtualSiblings().
void QWindow::setSizeIncrement(const QSize &size)
Устанавливает шаг изменения размера окна (size).
При изменении размера окна размер будет изменяться шагами sizeIncrement() по горизонтали и sizeIncrement() по вертикали, основываясь на baseSize().
По умолчанию это свойство содержит размер с нулевой шириной и высотой.
Система окон может не поддерживать шаги изменения размера.
См. также sizeIncrement(), setBaseSize(), setMinimumSize() и setMaximumSize().
void QWindow::setSurfaceType(QSurface::SurfaceType surfaceType)
Устанавливает surfaceType окна.
Указывает, предназначено ли окно для растровой отрисовки с помощью QBackingStore или для отрисовки с помощью OpenGL с помощью QOpenGLContext.
Тип surfaceType будет использован при создании нативного поверхностного объекта в функции create(). Вызов этой функции после создания нативного поверхностного объекта требует вызова destroy() и create() для освобождения старого нативного поверхностного объекта и создания нового.
См. также surfaceType(), QBackingStore, QOpenGLContext, create() и destroy().
void QWindow::setVulkanInstance(QVulkanInstance *instance)
Связывает это окно со указанным экземпляром Vulkan instance.
instance должен оставаться допустимым до тех пор, пока существует экземпляр QWindow.
См. также vulkanInstance().
void QWindow::setWindowState(Qt::WindowState state)
Устанавливает состояние окна относительно занимаемой им области экрана.
Состояние окна state указывает, отображается ли окно в системе окон как максимизированное, минимизированное, полноэкранное или нормальное.
Значение перечисления Qt::WindowActive не является допустимым параметром.
См. также windowState(), showNormal(), showFullScreen(), showMinimized(), showMaximized() и setWindowStates().
void QWindow::setWindowStates(Qt::WindowStates state)
Устанавливает состояние окна относительно занимаемой им области экрана.
Состояние окна state указывает, отображается ли окно в системе окон как максимизированное, минимизированное и/или полноэкранное.
Окно может находиться в комбинации нескольких состояний. Например, если окно и минимизировано, и максимизировано, оно будет отображаться как минимизированное, но щелчок по его записи в панели задач восстановит его в максимизированном состоянии.
Значение перечисления Qt::WindowActive не должно устанавливаться.
Данная функция была добавлена в Qt 5.10.
См. также windowStates(), showNormal(), showFullScreen(), showMinimized() и showMaximized().
void QWindow::showEvent(QShowEvent *ev)
Переопределите эту функцию для обработки событий показа (ev).
Функция вызывается, когда окно запросило видимость.
Если окно успешно отображено системой окон, за этим последует событие изменения размера и события отображения.
QSize QWindow::size() const
Реализует: QSurface::size() const.
Возвращает размер окна, исключая рамку окна.
См. также resize().
QSize QWindow::sizeIncrement() const
Возвращает приращение размера окна.
См. также setSizeIncrement().
QSurface::SurfaceType QWindow::surfaceType() const
Реализует: QSurface::surfaceType() const.
Возвращает тип поверхности окна.
См. также setSurfaceType().
void QWindow::tabletEvent(QTabletEvent *ev)
Переопределите эту функцию для обработки событий на планшетном устройстве (ev).
События входа и выхода в близость не отправляются окнам, они доставляются экземпляру приложения.
void QWindow::touchEvent(QTouchEvent *ev)
Переопределите эту функцию для обработки событий касания (ev).
Qt::WindowType QWindow::type() const
Возвращает тип окна.
Это возвращает часть флагов окна, которая указывает, является ли окно диалоговым, всплывающим, всплывающим, обычным окном и т. д.
См. также flags() и setFlags().
void QWindow::unsetCursor()
Восстанавливает стандартный курсор стрелки для этого окна.
QVulkanInstance *QWindow::vulkanInstance() const
Возвращает связанный экземпляр Vulkan, если он был задан, в противном случае nullptr.
См. также setVulkanInstance().
void QWindow::wheelEvent(QWheelEvent *ev)
Переопределите эту функцию для обработки событий колёса мыши или других событий колёса (ev).
WId QWindow::winId() const
Возвращает идентификатор платформы окна.
На платформах, где этот идентификатор может быть полезен, возвращаемое значение будет уникально представлять окно внутри соответствующего экрана.
См. также screen().
Qt::WindowState QWindow::windowState() const
состояние окна относительно занимаемой им области экрана
См. также setWindowState() и windowStates().
Qt::WindowStates QWindow::windowStates() const
состояние окна относительно занимаемой им области экрана
Окно может находиться в комбинации нескольких состояний. Например, если окно и минимизировано, и максимизировано, оно будет отображаться как минимизированное, но щелчок по его записи в панели задач восстановит его в максимизированном состоянии.
Данная функция была добавлена в Qt 5.10.
См. также setWindowStates().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qwindow.html