Spec-Zone.ru › Qt 6.0

Класс QWindow

Класс QWindow представляет окно в базовой системе окон. Подробнее...

Заголовок: #include <QWindow>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
С момента: Qt 5.0
Наследует: QObject и QSurface
Наследуется:

QPaintDeviceWindow, QQuickWindow и QVulkanWindow

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

Типы публичного интерфейса

Перечисление AncestorMode { ExcludeTransients, IncludeTransients }
Перечисление Visibility { Окно, Минимизировано, Максимизировано, Полный экран, Автоматическая видимость, Скрыто }

Свойства

  • active : const bool
  • contentOrientation : Qt::ScreenOrientation
  • flags : Qt::WindowFlags
  • height : int
  • maximumHeight : int
  • maximumWidth : int
  • minimumHeight : int
  • minimumWidth : int
  • modality : Qt::WindowModality
  • opacity : qreal
  • title : QString
  • transientParent : QWindow*
  • visibility : Visibility
  • visible : bool
  • width : int
  • x : int
  • y : int

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

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
QPointF mapFromGlobal(const QPointF &pos) const
QPoint mapFromGlobal(const QPoint &pos) const
QPointF mapToGlobal(const QPointF &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 = ExcludeTransients) 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 &region)
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 setTransientParent(QWindow *parent)
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
QWindow * transientParent() 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()
bool startSystemMove()
bool startSystemResize(Qt::Edges edges)

Сигналы

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 transientParentChanged(QWindow *transientParent)
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)

Защищённые функции

virtual void closeEvent(QCloseEvent *ev)
virtual void exposeEvent(QExposeEvent *ev)
virtual void focusInEvent(QFocusEvent *ev)
virtual void focusOutEvent(QFocusEvent *ev)
virtual void hideEvent(QHideEvent *ev)
virtual void keyPressEvent(QKeyEvent *ev)
virtual void keyReleaseEvent(QKeyEvent *ev)
virtual void mouseDoubleClickEvent(QMouseEvent *ev)
virtual void mouseMoveEvent(QMouseEvent *ev)
virtual void mousePressEvent(QMouseEvent *ev)
virtual void mouseReleaseEvent(QMouseEvent *ev)
virtual void moveEvent(QMoveEvent *ev)
virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
virtual void paintEvent(QPaintEvent *ev)
virtual void resizeEvent(QResizeEvent *ev)
virtual void showEvent(QShowEvent *ev)
virtual void tabletEvent(QTabletEvent *ev)
virtual void touchEvent(QTouchEvent *ev)
virtual void wheelEvent(QWheelEvent *ev)

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

virtual bool event(QEvent *ev) override

Подробное описание

Окно, которому задан родитель, становится родственным окном-потомком окна-родителя.

Приложению обычно следует использовать QWidget или QQuickView для своего пользовательского интерфейса, а не QWindow напрямую. Однако можно непосредственно отображать изображение в QWindow с помощью QBackingStore или QOpenGLContext, когда требуется минимальная зависимость или непосредственное использование OpenGL. Примеры Raster Window Example и OpenGL Window Example служат полезными образцами для отображения в 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 Временные родители рассматриваются как предки.

[since 5.1] перечисление QWindow::Visibility

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

Постоянная Значение Описание
QWindow::Windowed 2 Окно занимает часть экрана, но не обязательно весь экран. Это состояние будет происходить только на системах окон, которые поддерживают одновременный показ нескольких окон. В этом состоянии пользователь может перемещать и изменять размер окна вручную, если это разрешено WindowFlags и поддерживается системой окон.
QWindow::Minimized 3 Окно уменьшено до записи или значка на панели задач, доке, списке задач или рабочем столе, в зависимости от того, как система окон обрабатывает сворачивание окон.
QWindow::Maximized 4 Окно занимает весь экран, и строка заголовка всё ещё видна. На большинстве систем окон это состояние достигается щелчком по кнопке максимализации на панели инструментов.
QWindow::FullScreen 5 Окно занимает весь экран, не изменяет размер и не имеет строки заголовка. На некоторых платформах, которые не поддерживают одновременный показ нескольких окон, это может быть обычное состояние видимости, когда окно не скрыто.
QWindow::AutomaticVisibility 1 Это означает предоставление окну состояния видимости по умолчанию, которое может быть полноэкранным или оконным в зависимости от платформы. Его можно указать в качестве параметра для setVisibility, но он никогда не будет считан обратно из accessor видимости.
QWindow::Hidden 0 Окно не отображается никоим образом, однако оно может запоминать скрытое состояние видимости, которое может быть восстановлено путем установки AutomaticVisibility.

Это перечисление было введено или изменено в Qt 5.1.

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

[read-only, since 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.

[since 5.1] 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().

[since 5.13] transientParent : QWindow*

Это свойство содержит окно, для которого это окно является всплывающим окном-диалогом.

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

Для того, чтобы окно по умолчанию центрировалось над своим родительским окном-диалогом, в зависимости от менеджера окон, также может потребоваться вызвать setFlags() со соответствующим Qt::WindowType (например, Qt::Dialog).

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

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

QWindow * transientParent() const
void setTransientParent(QWindow *parent)

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

void transientParentChanged(QWindow *transientParent)

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

[since 5.1] visibility : Visibility

Это свойство содержит состояние отображения окна на экране.

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

Установить видимость в AutomaticVisibility означает задать для окна состояние видимости по умолчанию, которое может быть полноэкранным или оконным в зависимости от платформы. При чтении свойства visibility вы всегда получите фактическое состояние, а не 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, since 5.1] void QWindow::alert(int msec)

Приводит к отображению предупреждения на msec миллисекунд. Если msec равно 0 (по умолчанию), то предупреждение отображается неограниченно до тех пор, пока окно снова не станет активным. Эта функция не оказывает влияния на активное окно.

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

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

[slot] bool QWindow::close()

Закрыть окно.

Закрывает окно, фактически вызывая destroy(), и потенциально завершая приложение. Возвращает true при успехе, false, если есть родительское окно (в этом случае должно быть закрыто верхнее окно).

См. также destroy(), QGuiApplication::quitOnLastWindowClosed() и closeEvent().

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

[slot, since 5.5] void QWindow::requestUpdate()

Планирует событие QEvent::UpdateRequest для доставки в это окно.

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

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

[slot, since 5.15] bool QWindow::startSystemMove()

Запустить операцию перемещения, специфичную для системы.

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

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

Возвращает true, если операция была поддержана системой.

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

[slot, since 5.15] bool QWindow::startSystemResize(Qt::Edges edges)

Запустить операцию изменения размера, специфичную для системы.

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

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

edges должен представлять собой один край или два смежных края (угол). Другие значения недопустимы.

Возвращает true, если операция была поддержана системой.

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

[signal] void QWindow::windowStateChanged(Qt::WindowState windowState)

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

[virtual] QWindow::~QWindow()

Удаляет окно.

QSize QWindow::baseSize() const

Возвращает базовый размер окна.

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

[virtual protected] void QWindow::closeEvent(QCloseEvent *ev)

Переопределите этот метод для обработки событий закрытия (ev).

Функция вызывается, когда окно запрашивает закрытие. Вызовите QEvent::ignore() для события, если вы хотите предотвратить закрытие окна.

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

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 «retina».

Примечание: Для окон, не поддерживающих платформенное окно, т.е. когда 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) отправляется системой окон, когда окно переходит из состояния не отображения в состояние отображения.

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

Это событие не следует использовать для рисования. Для обработки рисования используйте paintEvent() вместо этого.

Событие изменения размера всегда отправляется перед событием expose при первом отображении окна.

См. также paintEvent() и isExposed().

QString QWindow::filePath() const

Имя файла, представленного этим окном.

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

END_OF_DOCUMENT_MARKER

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

[since 6.0] QPointF QWindow::mapFromGlobal(const QPointF &pos) const

Преобразует глобальные координаты экрана pos в координаты окна.

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

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

QPoint QWindow::mapFromGlobal(const QPoint &pos) const

Это перегруженный метод.

[since 6.0] QPointF QWindow::mapToGlobal(const QPointF &pos) const

Преобразует координаты окна pos в глобальные координаты экрана. Например, mapToGlobal(QPointF(0,0)) даст глобальные координаты верхнего левого пикселя окна.

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

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

QPoint QWindow::mapToGlobal(const QPoint &pos) const

Это перегруженный метод.

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, qintptr *result)

Переопределите этот метод для обработки событий, зависящих от платформы. Будут переданы eventType, message и result.

Это может сделать ваше приложение непереносимым.

Должен возвращать true только в случае обработки события.

[virtual protected, since 6.0] void QWindow::paintEvent(QPaintEvent *ev)

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

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

Данная функция была добавлена в Qt 6.0.

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

[since 5.9] QWindow *QWindow::parent(QWindow::AncestorMode mode = ExcludeTransients) const

Возвращает родительское окно, если оно есть.

Если mode равен IncludeTransients, то возвращается временный родитель, если родителя нет.

Окно без родителя называется окном верхнего уровня.

Данная функция была добавлена в Qt 5.9.

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

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.

Для интерактивного изменения размера окон, см. startSystemResize().

См. также size() и geometry().

[virtual protected] void QWindow::resizeEvent(QResizeEvent *ev)

Переопределите этот метод для обработки событий изменения размера (ev).

Событие изменения размера вызывается всякий раз, когда окно изменяет размер в системе окон, либо непосредственно через систему окон, подтверждающую запрос 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)

Устанавливает форму курсора для данного окна.

Курсор мыши примет эту форму, когда он находится над этим окном, если не установлен переопределяющий курсор. Список предопределенных объектов курсора см. в списке.

Если курсор не установлен или после вызова unsetCursor(), используется курсор родительского окна.

По умолчанию форма курсора — Qt::ArrowCursor.

Некоторые реализации оконных систем будут сбрасывать курсор, если он покидает окно, даже если мышь захвачена. Если вы хотите установить курсор для всех окон, даже когда он находится за пределами окна, используйте QGuiApplication::setOverrideCursor().

См. также cursor() и QGuiApplication::setOverrideCursor().

void QWindow::setFilePath(const QString &filePath)

Устанавливает имя файла, который представляет это окно.

Система окон может использовать filePath для отображения пути к документу, который представляет это окно, в строке заголовка.

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

[since 5.9] 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 &region)

Устанавливает маску окна.

Маска — подсказка для системы окон, что приложение не хочет получать события мыши или касания вне заданной 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() экрана.

Для интерактивного перемещения окон, см. startSystemMove(). Для интерактивного изменения размера окон, см. startSystemResize().

См. также position() и startSystemMove().

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().width() пикселей по горизонтали и sizeIncrement().height() пикселей по вертикали, с 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)

Устанавливает состояние окна в системе окон.

Состояние окна определяет, отображается ли оно в системе окон как максимизированное, минимизированное, полноэкранное или нормальное.

Значение перечисления Qt::WindowActive не является допустимым параметром.

См. также windowState(), showNormal(), showFullScreen(), showMinimized(), showMaximized() и setWindowStates().

[since 5.10] void QWindow::setWindowStates(Qt::WindowStates state)

Устанавливает состояние окна в системе окон.

Состояние окна определяет, отображается ли оно в системе окон как максимизированное, минимизированное и/или полноэкранное.

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

Значение перечисления Qt::WindowActive не должно устанавливаться.

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

См. также windowStates(), showNormal(), showFullScreen(), showMinimized() и showMaximized().

[virtual protected] void QWindow::showEvent(QShowEvent *ev)

Переопределите эту функцию для обработки событий показа (ev).

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

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

[override virtual] QSize QWindow::size() const

Реализует: QSurface::size() const.

Возвращает размер окна без учёта рамки окна.

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

QSize QWindow::sizeIncrement() const

Возвращает приращение размера окна.

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

[override virtual] QSurface::SurfaceType QWindow::surfaceType() const

Реализует: QSurface::surfaceType() const.

Возвращает тип поверхностного элемента окна.

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

[virtual protected] void QWindow::tabletEvent(QTabletEvent *ev)

Переопределите эту функцию для обработки событий планшетного компьютера (ev).

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

[virtual protected] void QWindow::touchEvent(QTouchEvent *ev)

Переопределите эту функцию для обработки событий касания (ev).

Qt::WindowType QWindow::type() const

Возвращает тип окна.

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

См. также flags() и setFlags().

void QWindow::unsetCursor()

Восстанавливает стандартный курсор стрелки для этого окна.

QVulkanInstance *QWindow::vulkanInstance() const

Возвращает связанную инстанцию Vulkan, если она была установлена, в противном случае nullptr.

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

[virtual protected] void QWindow::wheelEvent(QWheelEvent *ev)

Переопределите этот метод для обработки событий прокрутки мыши или других событий прокрутки (ev).

WId QWindow::winId() const

Возвращает идентификатор платформы окна.

Для платформ, где этот идентификатор может быть полезен, возвращаемое значение будет уникально представлять окно внутри соответствующего экрана.

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

Qt::WindowState QWindow::windowState() const

Состояние окна в отношении занимаемого им места на экране.

См. также setWindowState() и windowStates().

[since 5.10] 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-6.0/qwindow.html

Spec-Zone.ru

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