Spec-Zone.ru › Qt 5.15

Класс QWindow

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

Заголовок: #include <QWindow>
qmake: QT += gui
С момента: Qt 5.0
Наследуется от: QObject и QSurface
Наследующие классы:

QPaintDeviceWindow, QQuickWindow и QVulkanWindow

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

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

Открытые типы

перечисление AncestorMode { ExcludeTransients, IncludeTransients }
перечисление Visibility { Windowed, Minimized, Maximized, FullScreen, AutomaticVisibility, Hidden }

Свойства

  • 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
  • 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
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 &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 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()
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 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 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, long *result)
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 напрямую. Примеры «Окно растрового изображения» и «Пример окна OpenGL» полезны в качестве примеров того, как отображать изображение в 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 Окно занимает часть экрана, но не обязательно весь экран. Это состояние будет встречаться только на системах с поддержкой одновременного отображения нескольких окон. В этом состоянии пользователь может вручную перемещать и изменять размер окна, если это разрешено флагами окна и поддерживается системой управления окнами.
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().

[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] bool QWindow::startSystemMove()

Запускает системную операцию перемещения.

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

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

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

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

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

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) отправляется системой окон, когда область окна становится недействительной, например, из-за изменения отображения в системе окон.

Приложение может начать рендеринг в окно с помощью 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

Для интерактивного изменения размера окон см. 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)

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

Курсор мыши 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 &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)

Устанавливает состояние окна относительно экрана

Состояние окна 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.15/qwindow.html

Spec-Zone.ru

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