QWindow Class
QWindow 类表示底层窗口系统中的一个窗口。更多内容...
| 头文件: | #include <QWindow> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 继承自: | QObject 以及QSurface |
| 被继承者: |
公共类型
| enum | AncestorMode { ExcludeTransients, IncludeTransients } |
| enum | Visibility { Windowed, Minimized, Maximized, FullScreen, AutomaticVisibility, Hidden } |
属性
|
|
公共函数
| QWindow(QScreen *targetScreen = nullptr) | |
| QWindow(QWindow *parent) | |
| 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 |
(since 6.0) QPointF | mapFromGlobal(const QPointF &pos) const |
| QPoint | mapFromGlobal(const QPoint &pos) const |
(since 6.0) 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) |
(since 6.9) QMargins | safeAreaMargins() const |
| 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) |
(since 6.12) void | setFramePosition(int x, int y) |
| void | setIcon(const QIcon &icon) |
| bool | setKeyboardGrabEnabled(bool grab) |
| void | setMask(const QRegion ®ion) |
| void | setMaximumSize(const QSize &size) |
| void | setMinimumSize(const QSize &size) |
| void | setModality(Qt::WindowModality modality) |
| bool | setMouseGrabEnabled(bool grab) |
| void | setOpacity(qreal level) |
| void | setParent(QWindow *parent) |
| void | setPosition(const QPoint &pt) |
| void | setPosition(int posx, int posy) |
| void | setScreen(QScreen *newScreen) |
| void | setSizeIncrement(const QSize &size) |
| void | setSurfaceType(QSurface::SurfaceType surfaceType) |
| void | 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 | flagsChanged(Qt::WindowFlags flags) |
| 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) |
(since 6.9) void | safeAreaMarginsChanged(QMargins margins) |
| 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) |
| 虚拟 void | focusInEvent(QFocusEvent*ev) |
| 虚拟函数 void | focusOutEvent(QFocusEvent*ev) |
| 虚拟 void | hideEvent(QHideEvent*ev) |
| 虚拟函数 void | keyPressEvent(QKeyEvent*ev) |
| 虚拟函数 void | keyReleaseEvent(QKeyEvent*ev) |
| 虚拟 void | mouseDoubleClickEvent(QMouseEvent*ev) |
| 虚拟函数 void | mouseMoveEvent(QMouseEvent*ev) |
| 虚拟 void | mousePressEvent(QMouseEvent*ev) |
| 虚拟函数 void | mouseReleaseEvent(QMouseEvent*ev) |
| 虚拟 void | moveEvent(QMoveEvent*ev) |
| 虚拟 bool | nativeEvent(const QByteArray&eventType, void*message, qintptr*result) |
(since 6.0) 虚拟 void | paintEvent(QPaintEvent*ev) |
| 虚拟 void | resizeEvent(QResizeEvent*ev) |
| 虚拟 void | showEvent(QShowEvent*ev) |
| 虚拟函数 void | tabletEvent(QTabletEvent*ev) |
| 虚拟函数 void | touchEvent(QTouchEvent*ev) |
| 虚拟函数 void | wheelEvent(QWheelEvent*ev) |
重新实现的受保护函数
| virtual bool | event(QEvent *ev) override |
详细说明
一个被指定了父窗口的窗口将作为其父窗口的原生子窗口。
应用程序通常会使用QWidget 或QQuickView 来构建其用户界面,而不会直接使用QWindow。不过,当需要将依赖关系降至最低或希望直接使用OpenGL时,仍可通过QBackingStore 或QOpenGLContext 直接向QWindow进行渲染。Raster Window示例 和OpenGL Window示例是关于如何使用这两种方法向QWindow进行渲染的有用的参考示例。
资源管理
窗口可能会占用大量内存。通常的计算方式是宽度乘以高度再乘以颜色深度。一个窗口还可能包含多个缓冲区,以支持双缓冲和三缓冲,以及深度缓冲区和模板缓冲区。要释放窗口的内存资源,请调用destroy()函数。
内容方向
QWindow 提供了reportContentOrientationChange() 函数,可用于指定窗口内容相对于屏幕的布局。内容方向仅仅是向窗口系统提供的一个提示,表明窗口内容处于何种方向。当您希望保持窗口大小不变,但旋转内容时,此功能非常有用,特别是在不同方向之间进行旋转动画时。 窗口系统可能会利用该值来确定系统弹出窗口或对话框的布局。
可见性与窗口系统暴露
默认情况下,窗口不可见,您必须调用setVisible(true)、show() 或类似函数才能使其可见。要再次隐藏窗口,请调用setVisible(false) 或hide()。visible 属性描述了应用程序希望窗口处于的状态。 根据底层系统的不同,一个可见的窗口可能仍未在屏幕上显示。例如,它可能被其他不透明的窗口遮挡,或者被移动到了屏幕的物理区域之外。在具有暴露通知功能的窗口系统中,isExposed() 访问器描述了该窗口是否应被视为在屏幕上直接可见。 每当窗口的某个区域失效时(例如由于窗口系统中的曝光状态发生变化),都会调用exposeEvent()函数。在未向应用程序公开此信息的窗口系统中,isExposed()将直接返回与isVisible()相同的值。
QWindow::Visibility 通过 `visibility()` 查询的结果是一个便捷 API,它结合了 `visible()` 和 `windowStates()` 的功能。
渲染
有两个 Qt API 可用于将内容渲染到窗口中:QBackingStore 用于使用QPainter 进行渲染,并将内容刷新到类型为QSurface::RasterSurface 的窗口;QOpenGLContext 用于使用 OpenGL 将内容渲染到类型为QSurface::OpenGLSurface 的窗口。
只要isExposed() 返回true ,应用程序即可开始渲染,并可一直渲染直到isExposed() 返回false 。若要检测isExposed() 的变化,请重写exposeEvent()。窗口总会在首次暴露事件之前收到一个调整大小事件。
初始几何信息
如果窗口的宽度和高度未初始化,窗口将从平台窗口获取合理的默认几何信息。如果位置未初始化,则平台窗口将允许窗口系统自行定位该窗口。 例如在 X11 上,窗口管理器通常会进行某种智能定位,以尽量避免新窗口完全遮挡现有窗口。但是,setGeometry() 会同时初始化位置和大小,因此若您希望使用固定大小但自动定位,应改用resize() 或setWidth() 以及setHeight()。
成员类型文档
enum QWindow::AncestorMode
此枚举用于控制是否应将临时父类视为祖先。
| 常量 | 值 | 描述 |
|---|---|---|
QWindow::ExcludeTransients | 0 | 临时父对象不被视为祖先。 |
QWindow::IncludeTransients | 1 | 将临时父级视为祖先。 |
enum QWindow::Visibility
此枚举描述了窗口占据或应占据屏幕的哪个部分。
| 常量 | 值 | 描述 |
|---|---|---|
QWindow::Windowed | 2 | 窗口占据屏幕的一部分,但不一定是整个屏幕。此状态仅会在支持同时显示多个窗口的窗口系统中出现。在此状态下,如果 WindowFlags 允许且窗口系统支持,用户可以手动移动和调整窗口大小。 |
QWindow::Minimized | 3 | 窗口被缩小为任务栏、停靠栏、任务列表或桌面上的一个条目或图标,具体取决于窗口系统如何处理最小化窗口。 |
QWindow::Maximized | 4 | 窗口占据整个屏幕,且标题栏仍然可见。在大多数窗口系统中,这是通过点击工具栏上的最大化按钮所达到的状态。 |
QWindow::FullScreen | 5 | 窗口占据整个屏幕,不可调整大小,且没有标题栏。在某些不支持同时显示多个窗口的平台上,当窗口未被隐藏时,这可能是其通常的可见状态。 |
QWindow::AutomaticVisibility | 1 | 这意味着为窗口指定默认可见状态,具体是全屏还是窗口化取决于平台。该参数可作为setVisibility 的参数传入,但绝不会被可见性访问器读取回来。 |
QWindow::Hidden | 0 | 该窗口以任何形式均不可见,但它可能会记住一种潜藏的可见性状态,该状态可通过设置 AutomaticVisibility 来恢复。 |
属性文档
[read-only] active : bool
该属性保存窗口的活动状态
访问函数:
| bool | isActive() const |
通知信号:
| void | activeChanged() |
另请参阅 requestActivate()。
contentOrientation : Qt::ScreenOrientation
该属性保存了窗口内容的方向
这是向窗口管理器提供的一条提示,以便其在需要时,能够根据该窗口显示额外内容,例如弹出窗口、对话框、状态栏或类似元素。
推荐的朝向为QScreen::orientation(),但应用程序不必支持所有可能的朝向,因此可以选择忽略当前屏幕的朝向。
窗口与内容方向之间的差异决定了内容应旋转多少。QScreen::angleBetween()、QScreen::transformBetween() 和QScreen::mapBetween() 可用于计算所需的变换。
访问函数:
| 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) |
通知器信号:
| void | flagsChanged(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。
访问函数:
| 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()`。
transientParent : QWindow*
该属性保存了当前窗口所属的、作为其临时父窗口的窗口
这是向窗口管理器提供的提示,表明该窗口是代表临时父窗口的对话框或弹出窗口。
为了使窗口默认居中显示在其临时父窗口parent 上方,根据窗口管理器的不同,可能还需要调用setFlags(),并传入合适的Qt::WindowType (例如Qt::Dialog )。
访问函数:
| QWindow * | transientParent() const |
| void | setTransientParent(QWindow *parent) |
通知器信号:
| void | transientParentChanged(QWindow *transientParent) |
另请参阅 parent()。
visibility : Visibility
该属性保存了窗口的屏幕占用状态
可见性(Visibility)指窗口在窗口系统中应以正常、最小化、最大化、全屏还是隐藏的状态显示。
将可见性设置为AutomaticVisibility 意味着将窗口设为默认可见状态,具体是全屏还是窗口化模式取决于平台。读取可见性属性时,始终会返回实际状态,绝不会返回AutomaticVisibility 。
默认值为“隐藏”。
访问函数:
| QWindow::Visibility | visibility() const |
| void | setVisibility(QWindow::Visibility v) |
Notifier 信号:
| void | visibilityChanged(QWindow::Visibility visibility) |
visible : bool
该属性表示窗口是否可见
该属性控制窗口在窗口系统中的可见性。
默认情况下,窗口不可见,您必须调用 setVisible(true)、show() 或类似方法才能使其可见。
注意:隐藏 窗口不会将其从窗口系统中移除,只是将其隐藏起来。 在为全屏应用程序提供专用桌面的窗口系统(如 macOS)中,隐藏全屏窗口不会移除该桌面,而是将其设为空白。同一应用程序的另一个窗口可能以全屏方式显示,并填满该桌面。请使用QWindow::close 将窗口完全从窗口系统中移除。
访问函数:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Notifier 信号:
| 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) |
成员函数文档
[explicit] QWindow::QWindow(QScreen *targetScreen = nullptr)
在targetScreen 上创建一个顶级窗口。
在调用setVisible(true)、show() 或类似操作之前,该窗口不会显示。
另请参阅 setScreen()。
[explicit] QWindow::QWindow(QWindow *parent)
创建一个窗口,作为给定parent 窗口的子窗口。
该窗口将嵌入到父窗口中,其坐标相对于父窗口。
屏幕从父窗口继承而来。
另请参阅 setParent()。
[virtual noexcept] QWindow::~QWindow()
关闭该窗口。
[slot] void QWindow::alert(int msec)
使警报显示msec 毫秒。如果msec 的值为0 (默认值),则警报将无限期显示,直到窗口再次成为活动窗口为止。此函数对活动窗口无效。
处于警报状态时,窗口会通过闪烁或使任务栏条目弹跳等方式,提示用户需要关注该窗口。
QSize QWindow::baseSize() const
返回窗口的基础大小。
另请参阅 setBaseSize()。
[slot] bool QWindow::close()
关闭窗口。
这将关闭窗口,实际上会调用destroy(),并可能导致应用程序退出。成功时返回true ,若存在父窗口则返回false(此时应关闭顶级窗口)。
另请参阅 destroy()、QGuiApplication::quitOnLastWindowClosed() 和closeEvent()。
[virtual protected] void QWindow::closeEvent(QCloseEvent *ev)
重写此方法以处理关闭事件(ev )。
当系统请求关闭窗口时,会调用该函数。若要阻止窗口关闭,请在事件发生时调用QEvent::ignore()。
另请参阅 close()。
void QWindow::create()
分配与该窗口相关的平台资源。
此时,通过setFormat()设置的表面格式将被解析为实际的原生表面。不过,在调用setVisible()之前,该窗口仍处于隐藏状态。
请注意,通常无需直接调用此函数,因为它会由show()、setVisible()、winId() 以及其他需要访问平台资源的函数隐式调用。
如有必要,请调用destroy() 来释放平台资源。
另请参阅 destroy()。
QCursor QWindow::cursor() const
此窗口的光标形状
另请参阅 setCursor() 和unsetCursor()。
void QWindow::destroy()
释放与该窗口关联的原生平台资源。
另请参阅 create()。
qreal QWindow::devicePixelRatio() const
返回该窗口的物理像素与设备无关像素之间的比例。该值取决于窗口所在的屏幕,当窗口被移动时,该值可能会发生变化。
当设备像素比例发生变化时,QWindow 实例会接收一个类型为QEvent::DevicePixelRatioChange 的事件。
常见值为:普通显示屏上为 1.0,Apple “视网膜”显示屏上为 2.0。
另请参阅 QScreen::devicePixelRatio() 和QEvent::DevicePixelRatioChange 。
[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()。
当窗口首次显示时,resize 事件总会先于 expose 事件触发。
另请参阅 paintEvent() 和isExposed()。
QString QWindow::filePath() const
此窗口所代表的文件名。
另请参阅 setFilePath()。
[virtual protected] void QWindow::focusInEvent(QFocusEvent *ev)
重写此方法以处理事件中的焦点(ev )。
当窗口获得键盘焦点时,会触发焦点事件。
另请参阅 focusOutEvent()。
[virtual] QObject *QWindow::focusObject() const
返回QObject 对象,该对象将作为与焦点相关的事件(如键盘事件)的最终接收者。
[signal] void QWindow::focusObjectChanged(QObject *object)
当与焦点相关的事件的最终接收器被更改为object 时,会发出此信号。
另请参阅 focusObject()。
[virtual protected] void QWindow::focusOutEvent(QFocusEvent *ev)
重写此方法以处理焦点移出事件(ev )。
当窗口失去键盘焦点时,会触发焦点移出事件。
另请参阅 focusInEvent()。
[override virtual] QSurfaceFormat QWindow::format() const
重写了:QSurface::format() const。
返回该窗口的实际格式。
窗口创建完成后,该函数将返回窗口的实际表面格式。如果平台无法满足请求的格式,则实际格式可能与请求的格式不同。它也可能是请求格式的超集,例如某些缓冲区大小可能大于请求的大小。
注意:根据 平台的不同 ,该表面格式中的某些值可能仍包含请求的值,即传递给setFormat() 的值。典型的例子包括 OpenGL 版本、配置文件和选项。这些值在create() 期间可能不会更新,因为它们与上下文相关,而单个窗口在其生命周期内可能与多个上下文一起使用。 请改用QOpenGLContext 的format()方法来查询此类值。
另请参阅 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()。
[slot] void QWindow::hide()
隐藏窗口。
等同于调用setVisible(false)。
另请参阅 show() 和setVisible()。
[virtual protected] void QWindow::hideEvent(QHideEvent *ev)
重写此函数以处理隐藏事件(ev )。
当窗口向窗口管理系统请求隐藏时,会调用此函数。
QIcon QWindow::icon() const
返回窗口在窗口系统中的图标
另请参阅 setIcon()。
bool QWindow::isActive() const
如果窗口处于活动状态,则返回true 。
这既适用于当前拥有输入焦点的窗口,也适用于与焦点窗口处于同一父窗口/临时父窗口链中的窗口。
通常,从样式角度来看,活动窗口应呈现为活动状态。
要获取当前具有焦点的窗口,请使用QGuiApplication::focusWindow()。
注意: 这是属性active 的获取 函数。
另请参阅 requestActivate()。
bool QWindow::isAncestorOf(const QWindow *child, QWindow::AncestorMode mode = IncludeTransients) const
如果该窗口是给定child 的祖先,则返回true 。如果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()。
[slot] void QWindow::lower()
在窗口系统中将该窗口下移。
请求将该窗口下移,使其显示在其他窗口下方。
[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()。
[signal] void QWindow::modalityChanged(Qt::WindowModality modality)
当 Qwindow::modality 属性变为modality 时,会发出此信号。
注意: 这是属性modality 的Notifier 信号。
[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()。
QWindow *QWindow::parent(QWindow::AncestorMode mode = ExcludeTransients) const
返回父窗口(如有)。
如果 `mode ` 的值为 `IncludeTransients`,且当前窗口没有父窗口,则返回临时父窗口。
没有父窗口的窗口称为顶级窗口。
另请参阅 setParent()。
QPoint QWindow::position() const
返回窗口在桌面上的位置(不包括任何窗口边框)
注意:并非 所有窗口系统都支持设置或查询顶级窗口的位置。在这样的系统中,通过编程移动窗口可能没有任何效果,且当前位置可能会返回一些非实际值,例如QPoint(0, 0) 。
另请参阅 setPosition()。
[slot] void QWindow::raise()
在窗口系统中将该窗口置于最前。
请求将该窗口提升至其他窗口之上。
[slot] void QWindow::requestActivate()
请求激活该窗口,即使其获得键盘焦点。
另请参阅 isActive() 和QGuiApplication::focusWindow()。
[slot] void QWindow::requestUpdate()
安排一个QEvent::UpdateRequest 事件发送至该窗口。
在支持该功能的平台上,该事件会与显示器的垂直同步(vsync)保持同步交付。否则,该事件会在最多延迟 5 毫秒后交付。如果窗口关联的屏幕报告的refresh rate 高于 60 Hz,则该间隔会缩放为小于 5 的值。 额外的时间是为了给事件循环留出一些空闲时间以收集系统事件,并可通过 QT_QPA_UPDATE_IDLE_TIME 环境变量进行覆盖。
在驱动动画时,应在绘制完成后调用此函数一次。多次调用此函数将导致单个事件被传递给窗口。
QWindow 的子类应重写event(),拦截该事件并调用应用程序的渲染代码,然后调用基类的实现。
注意:子类 对event()的重写 必须调用基类的实现,除非它绝对确定该事件无需由基类处理。例如,该函数的默认实现依赖于QEvent::Timer 事件。因此,过滤掉这些事件将导致更新事件的传递中断。
QSurfaceFormat QWindow::requestedFormat() const
返回此窗口的请求表面格式。
如果平台实现不支持请求的格式,则 requestedFormat 将与实际的窗口格式不同。
这是通过setFormat() 设置的值。
void QWindow::resize(const QSize &newSize)
将窗口的大小(不包括任何窗口边框)设置为newSize
void QWindow::resize(int w, int h)
将窗口的大小(不包括任何窗口边框)设置为由宽度w 和高度 构成的QSize h
有关交互式调整窗口大小的信息,请参阅startSystemResize()。
[virtual protected] void QWindow::resizeEvent(QResizeEvent *ev)
重写此方法以处理调整大小事件(ev )。
每当窗口在窗口系统中被调整大小时,都会触发 resize 事件,无论是窗口系统直接响应setGeometry() 或resize() 请求,还是用户手动调整窗口大小所导致的间接触发。
[since 6.9] QMargins QWindow::safeAreaMargins() const
返回窗口的安全区域边距。
安全区域是指窗口中可以安全放置内容的部分,在此区域内,内容不会被其他 UI 元素(例如系统 UI)遮挡,也不会与之发生冲突。
这些边距相对于窗口的内部几何形状,即QRect(0, 0,width()、height()。
void PaintDeviceWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QRect rect(0, 0, width(), height());
painter.fillRect(rect, QGradient::SunnyMorning);
painter.fillRect(rect - safeAreaMargins(), QGradient::DustyGrass);
}该函数在 Qt 6.9 中引入。
另请参阅 geometry() 和safeAreaMarginsChanged()。
[signal, since 6.9] void QWindow::safeAreaMarginsChanged(QMargins margins)
当安全区域边界发生变化时,会发出此信号,具体变化为margins 。
该函数于 Qt 6.9 版本中引入。
另请参阅 safeAreaMargins()。
QScreen *QWindow::screen() const
返回显示该窗口的屏幕;如果没有,则返回 null。
对于子窗口,此函数将返回相应顶级窗口的屏幕。
另请参阅 setScreen() 和QScreen::virtualSiblings()。
[signal] void QWindow::screenChanged(QScreen *screen)
当窗口的screen 发生变化时,会发出此信号,这种变化可能是通过setScreen()显式设置,也可能是窗口的screen被移除时自动发生的。
void QWindow::setBaseSize(const QSize &size)
设置窗口的基size 。
如果窗口定义了sizeIncrement(),则会使用基准尺寸来计算合适的窗口尺寸。
另请参阅 setMinimumSize()、setMaximumSize()、setSizeIncrement() 和baseSize()。
void QWindow::setCursor(const QCursor &cursor)
设置此窗口的光标形状
当鼠标cursor 悬停在此窗口上方时,将采用此形状,除非已设置覆盖光标。有关各种有用的形状,请参阅list of predefined cursor objects 。
如果未设置光标,或者在调用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)
如果 `on ` 为真,则在此窗口上设置窗口标志 `flag `;否则清除该标志。
另请参阅 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()。
[since 6.12] void QWindow::setFramePosition(int x, int y)
将窗口(包括窗口边框)的左上角位置设置为x ,y
该位置相对于其屏幕的 virtualGeometry() 而言。
该函数在 Qt 6.12 中引入。
另请参阅 setGeometry() 和frameGeometry()。
[slot] void QWindow::setGeometry(const QRect &rect)
将窗口(不包括窗口边框)的几何形状设置为rect 。
该几何尺寸与其屏幕的 virtualGeometry() 相关。
注意:此 插槽已被重载。要连接到此插槽:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
window, qOverload(&QWindow::setGeometry));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
window, [receiver = window](const QRect &rect) { receiver->setGeometry(rect); }); 另请参阅 geometry()。
[slot] void QWindow::setGeometry(int posx, int posy, int w, int h)
将窗口(不包括窗口边框)的几何形状设置为由posx 、posy 、w 和h 构成的矩形。
该几何形状与其屏幕的 virtualGeometry() 相关。
注意:此 插槽是重载的。要连接到此插槽:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
window, qOverload(&QWindow::setGeometry));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
window, [receiver = window](int posx, int posy, int w, int h) { receiver->setGeometry(posx, posy, w, h); }); 另请参阅 geometry()。
void QWindow::setIcon(const QIcon &icon)
在窗口系统中设置窗口的icon
窗口图标可能会被窗口系统用于装饰窗口,以及/或在任务切换器中显示。
注意:在 macOS上 ,窗口标题栏图标专用于表示文档的窗口,且仅在同时设置了文件路径时才会显示。
另请参阅 icon() 和setFilePath()。
bool QWindow::setKeyboardGrabEnabled(bool grab)
设置是否启用键盘捕获(grab )。
如果返回值为 true,则该窗口将接收所有键事件,直到调用 setKeyboardGrabEnabled(false) 为止;其他窗口则完全无法接收任何键事件。鼠标事件不受影响。若需捕获鼠标事件,请使用setMouseGrabEnabled()。
另请参阅 setMouseGrabEnabled()。
void QWindow::setMask(const QRegion ®ion)
设置窗口的遮罩。
遮罩是向窗口系统提供的提示,表明应用程序不希望接收指定区域region 之外的鼠标或触摸输入。
窗口管理器可能会或可能不会选择显示遮罩中未包含的窗口区域,因此,将不属于遮罩的区域清空并设为透明是应用程序的责任。
另请参阅 mask()。
void QWindow::setMaximumSize(const QSize &size)
设置窗口的最大尺寸。
这是向窗口管理器提供的一个提示,用于防止窗口大小调整超过指定的size 。
另请参阅 setMinimumSize() 和maximumSize()。
void QWindow::setMinimumSize(const QSize &size)
设置窗口的最小尺寸。
这是向窗口管理器发出的提示,用于防止窗口大小被调整至小于指定的size 。
另请参阅 setMaximumSize() 和minimumSize()。
bool QWindow::setMouseGrabEnabled(bool grab)
设置是否启用鼠标捕获(grab )。
如果返回值为 true,则该窗口将接收所有鼠标事件,直到调用 setMouseGrabEnabled(false) 为止;其他窗口则完全无法接收鼠标事件。键盘事件不受影响。若需捕获键盘事件,请使用setKeyboardGrabEnabled()。
另请参阅 setKeyboardGrabEnabled()。
void QWindow::setParent(QWindow *parent)
设置“parent ”窗口。这将导致窗口管理系统对该窗口进行裁剪,使其被裁剪为“parent ”窗口的大小。
将parent 设置为nullptr 将使该窗口成为顶级窗口。
如果parent 是由fromWinId()创建的窗口,且平台支持该功能,则当前窗口将被嵌入到parent 中。
另请参阅 parent()。
void QWindow::setPosition(const QPoint &pt)
将窗口在桌面上的位置设置为pt
该位置是以其屏幕的 virtualGeometry() 为基准的。
有关交互式移动窗口,请参阅startSystemMove()。有关交互式调整窗口大小,请参阅startSystemResize()。
注意:并非 所有窗口系统都支持设置或查询顶级窗口的位置。在这样的系统上,通过编程移动窗口可能没有任何效果,且当前位置可能会返回一些虚构的值,例如QPoint(0, 0) 。
另请参阅 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 的栅格渲染,还是用于QOpenGLContext 的OpenGL渲染。
当在create()函数中创建本机表面时,将使用surfaceType 。在本机表面创建完成后调用此函数,需要先调用destroy()和create()来释放旧的本机表面并创建一个新的。
另请参阅 surfaceType()、QBackingStore 、QOpenGLContext 、create() 以及destroy()。
void QWindow::setVulkanInstance(QVulkanInstance *instance)
将此窗口与指定的 Vulkaninstance 关联。
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 `。
另请参阅 windowStates()、showNormal()、showFullScreen()、showMinimized() 和showMaximized()。
[slot] void QWindow::show()
显示该窗口。
对于子窗口,这相当于调用showNormal()。否则,根据平台对该窗口类型和标志的默认行为,这相当于调用showFullScreen()、showMaximized() 或showNormal()。
另请参阅 showFullScreen()、showMaximized()、showNormal()、hide()、QStyleHints::showIsFullScreen()和flags()。
[virtual protected] void QWindow::showEvent(QShowEvent *ev)
重写此方法以处理显示事件(ev )。
当窗口请求显示时,会调用此函数。
如果窗口由窗口系统成功显示,随后将触发一个调整大小事件和一个显式事件。
[slot] void QWindow::showFullScreen()
将窗口显示为全屏模式。
相当于先调用setWindowStates (Qt::WindowFullScreen ),然后调用setVisible(true)。
有关特定平台的注意事项和限制,请参阅QWidget::showFullScreen() 的文档。
另请参阅 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()。
[override virtual] QSize QWindow::size() const
重写了:QSurface::size() const。
返回窗口的大小,不包括任何窗口边框
另请参阅 resize()。
QSize QWindow::sizeIncrement() const
返回窗口的大小增量。
另请参阅 setSizeIncrement()。
[slot] bool QWindow::startSystemMove()
启动特定系统的移动操作
调用此方法将在支持该功能的平台上对窗口启动交互式移动操作。具体行为可能因平台而异。通常,该操作会使窗口跟随鼠标光标移动,直到释放鼠标按钮为止。
在支持该功能的平台上,相较于 `setPosition`,更推荐使用此种窗口移动方式,因为它能提供更符合原生风格的窗口移动体验,例如允许窗口管理器将该窗口吸附到其他窗口上,或者在拖动至屏幕边缘时触发带有动画效果的特殊平铺或调整大小行为。 此外,在某些平台(如 Wayland)上,setPosition 不受支持,因此这是应用程序影响其位置的唯一方式。
如果系统支持该操作,则返回 true。
[slot] bool QWindow::startSystemResize(Qt::Edges edges)
启动针对特定系统的窗口调整大小操作
调用此方法将在支持该功能的平台上启动窗口的交互式调整大小操作。具体行为可能因平台而异。通常,它会使窗口调整大小,使其边缘跟随鼠标光标移动。
在支持该功能的平台上,相较于 `setGeometry`,更推荐使用此种窗口调整大小方法,因为它能提供更符合原生风格的窗口调整体验,例如允许窗口管理器将该窗口吸附到其他窗口上,或者在将窗口拖动到屏幕边缘时触发带有动画效果的特殊调整行为。
edges 应为单个边框,或两个相邻的边框(即一个角)。不允许其他值。
如果系统支持该操作,则返回 true。
[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
返回窗口的类型。
该函数返回窗口标志中表示该窗口是对话框、工具提示、弹出窗口、普通窗口等的那一部分。
void QWindow::unsetCursor()
将此窗口的光标恢复为默认的箭头光标。
QVulkanInstance *QWindow::vulkanInstance() const
如果已设置关联的 Vulkan 实例,则返回该实例;否则返回 `nullptr`。
另请参阅 setVulkanInstance()。
[virtual protected] void QWindow::wheelEvent(QWheelEvent *ev)
重写此方法以处理鼠标滚轮或其他滚轮事件(ev )。
WId QWindow::winId() const
返回窗口的平台 ID。
注意: 如果平台窗口尚未创建,此 函数将触发其创建。若平台窗口创建失败,则返回 0。
对于可能需要此标识符的平台,返回的值将唯一地标识对应屏幕中的该窗口。
另请参阅 screen()。
Qt::WindowState QWindow::windowState() const
窗口的屏幕占用状态
另请参阅 setWindowState() 和windowStates()。
[signal] void QWindow::windowStateChanged(Qt::WindowState windowState)
当windowState 发生变化时,会触发此信号,这种变化可能是通过显式调用setWindowStates()设置的,也可能是当用户点击标题栏上的某个按钮或其他方式时自动触发的。
Qt::WindowStates QWindow::windowStates() const
窗口的屏幕占用状态
窗口可能处于多种状态的组合中。例如,如果窗口同时处于最小化和最大化状态,则窗口将显示为最小化状态,但点击任务栏中的窗口图标会将其恢复为最大化状态。
另请参阅 setWindowStates()。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.