PySide6.QtGui.QWindow

class QWindow

QWindow 类表示底层窗口系统中的窗口。更多

PySide6.QtGui.QWindow 的继承图

继承自: QQuickWindow, QQuickView, QPaintDeviceWindow, QOpenGLWindow, QRasterWindow, Qt3DWindow

概要

属性

方法

虚拟方法

插槽

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

一个被提供父窗口的窗口将成为其父窗口的原生子窗口。

应用程序通常会使用QWidget或QQuickView作为其用户界面,而不是直接使用QWindow。然而,当希望将依赖关系保持在最低限度或希望直接使用OpenGL时,仍然可以使用QBackingStoreQOpenGLContext直接渲染到QWindowRaster Window Example和OpenGL Window Example是如何使用这两种方法渲染到QWindow的有用参考示例。

资源管理

Windows 可能会使用大量内存。通常的测量方法是宽度乘以高度乘以颜色深度。窗口可能还包括多个缓冲区以支持双缓冲和三缓冲,以及深度和模板缓冲区。要释放窗口的内存资源,请调用 destroy() 函数。

内容方向

QWindow 具有 reportContentOrientationChange(),可用于指定窗口内容相对于屏幕的布局。内容方向只是对窗口系统的一个提示,指示窗口内容的方向。当您希望保持相同的窗口大小但旋转内容时,这特别有用,尤其是在不同方向之间进行旋转动画时。窗口系统可能会使用此值来确定系统弹出窗口或对话框的布局。

可见性和窗口系统暴露

默认情况下,窗口是不可见的,你必须调用setVisible (true),或者show()或类似的方法使其可见。要使窗口再次隐藏,调用setVisible (false)或hide()。visible属性描述了应用程序希望窗口处于的状态。根据底层系统,一个可见的窗口可能仍然不会显示在屏幕上。例如,它可能被其他不透明的窗口覆盖或移动到屏幕的物理区域之外。在具有曝光通知的窗口系统中,isExposed()访问器描述了窗口是否应被视为直接在屏幕上可见。每当窗口的某个区域无效时,例如由于窗口系统中的曝光变化,exposeEvent()函数就会被调用。在不向应用程序显示此信息的窗口系统中,isExposed()将简单地返回与isVisible()相同的值。

Visibility 通过 visibility() 查询是一个方便的API,结合了 visible() 和 windowStates() 的功能。

渲染

有两种Qt API可以用于将内容渲染到窗口中,QBackingStore用于使用QPainter进行渲染并将内容刷新到类型为RasterSurface的窗口,以及QOpenGLContext用于使用OpenGL渲染到类型为OpenGLSurface的窗口。

应用程序可以在isExposed()返回true时开始渲染,并且可以继续渲染直到isExposed()返回false。要了解isExposed()何时发生变化,请重新实现exposeEvent()。窗口在第一次暴露事件之前总是会收到一个调整大小的事件。

初始几何

如果窗口的宽度和高度未初始化,窗口将从平台窗口获取合理的默认几何形状。如果位置未初始化,则平台窗口将允许窗口系统定位窗口。例如,在X11上,窗口管理器通常会进行某种智能定位,以避免新窗口完全遮挡现有窗口。然而,setGeometry() 会同时初始化位置和大小,因此如果你想要固定大小但自动位置,你应该调用 resize()setWidth()setHeight() 来代替。

class Visibility

此枚举描述了窗口占据或应占据屏幕的哪一部分。

常量

描述

QWindow.Windowed

窗口占据屏幕的一部分,但不一定是整个屏幕。这种状态只会出现在支持同时显示多个窗口的窗口系统中。在这种状态下,如果WindowFlags允许并且窗口系统支持,用户可以手动移动和调整窗口大小。

QWindow.Minimized

窗口被缩小为任务栏、停靠栏、任务列表或桌面上的一个条目或图标,具体取决于窗口系统如何处理最小化的窗口。

QWindow.Maximized

窗口占据整个屏幕,标题栏仍然可见。在大多数窗口系统中,这是通过点击工具栏上的最大化按钮实现的状态。

QWindow.FullScreen

窗口占据整个屏幕,不可调整大小,并且没有标题栏。在某些不支持同时显示多个窗口的平台上,当窗口未隐藏时,这可能是通常的可见性状态。

QWindow.AutomaticVisibility

这意味着给窗口一个默认的可见状态,可能是全屏或窗口化,具体取决于平台。它可以作为参数传递给setVisibility,但永远不会从可见性访问器中读取。

QWindow.Hidden

窗口在任何情况下都不可见,但它可能会记住一个潜在的可见性,可以通过设置AutomaticVisibility来恢复。

class AncestorMode

此枚举用于控制是否应将临时父级视为祖先。

常量

描述

QWindow.ExcludeTransients

不考虑瞬态父级为祖先。

QWindow.IncludeTransients

临时父窗口被视为祖先。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property activeᅟ: bool

此属性保存窗口的活动状态。

另请参阅

requestActivate()

Access functions:
property contentOrientationᅟ: Qt.ScreenOrientation

此属性保存窗口内容的朝向。

这是对窗口管理器的提示,以防它需要显示与窗口相关的额外内容,如弹出窗口、对话框、状态栏或类似内容。

推荐的朝向是orientation(),但应用程序不必支持所有可能的朝向,因此可以选择忽略当前的屏幕朝向。

窗口和内容方向之间的差异决定了内容需要旋转多少。angleBetween()transformBetween()mapBetween()可以用来计算必要的变换。

默认值为 Qt::PrimaryOrientation

Access functions:
property flagsᅟ: Combination of Qt.WindowType

此属性保存窗口的窗口标志。

窗口标志控制窗口在窗口系统中的外观,无论是对话框、弹出窗口还是常规窗口,以及是否应具有标题栏等。

如果请求的标志无法满足,实际窗口标志可能与使用setFlags()设置的标志不同。

另请参阅

setFlag()

Access functions:
property heightᅟ: int

此属性保存窗口几何的高度。

Access functions:
property maximumHeightᅟ: int

此属性保存窗口几何形状的最大高度。

Access functions:
property maximumWidthᅟ: int

此属性保存窗口几何形状的最大宽度。

Access functions:
property minimumHeightᅟ: int

此属性保存窗口几何形状的最小高度。

Access functions:
property minimumWidthᅟ: int

此属性保存窗口几何形状的最小宽度。

Access functions:
property modalityᅟ: Qt.WindowModality

此属性保存窗口的模式。

模态窗口阻止其他窗口接收输入事件。Qt 支持两种类型的模态:Qt::WindowModal 和 Qt::ApplicationModal。

默认情况下,此属性为 Qt::NonModal

另请参阅

WindowModality

Access functions:
property opacityᅟ: float

此属性保存窗口在窗口系统中的不透明度。

如果窗口系统支持窗口不透明度,这可以用来使窗口淡入淡出,或使其半透明。

值为1.0或以上被视为完全不透明,而值为0.0或以下被视为完全透明。介于两者之间的值表示不同程度的半透明。

默认值为1.0。

Access functions:
property titleᅟ: str

此属性保存窗口在窗口系统中的标题。

窗口标题可能会出现在窗口装饰的标题区域,具体取决于窗口系统和窗口标志。它也可能被窗口系统用于在其他上下文中识别窗口,例如在任务切换器中。

另请参阅

flags()

Access functions:
property visibilityᅟ: QWindow.可见性

此属性保存窗口的屏幕占用状态。

可见性是指窗口在窗口系统中是否应显示为正常、最小化、最大化、全屏或隐藏。

将可见性设置为AutomaticVisibility意味着给窗口一个默认的可见状态,这可能是全屏或窗口化,具体取决于平台。当读取可见性属性时,您将始终获得实际状态,而不是AutomaticVisibility

Access functions:
property visibleᅟ: bool

此属性表示窗口是否可见。

此属性控制窗口在窗口系统中的可见性。

默认情况下,窗口是不可见的,你必须调用 setVisible(true),或者 show() 或类似的方法使其可见。

注意

隐藏窗口并不会将窗口从窗口系统中移除,它只是将其隐藏。在提供全屏应用程序专用桌面的窗口系统(如macOS)上,隐藏全屏窗口不会移除该桌面,而是将其留空。同一应用程序的另一个窗口可能会以全屏显示,并填充该桌面。使用close来完全从窗口系统中移除窗口。

另请参阅

show()

Access functions:
property widthᅟ: int

此属性保存窗口几何形状的宽度。

Access functions:
property xᅟ: int

此属性保存窗口几何形状的x位置。

Access functions:
property yᅟ: int

此属性保存窗口几何形状的y位置。

Access functions:
__init__([screen=None])
Parameters:

屏幕QScreen

targetScreen上创建一个顶级窗口。

窗口在调用setVisible (true)、show()或类似方法之前不会显示。

另请参阅

setScreen()

__init__(parent)
Parameters:

父窗口QWindow

创建一个窗口作为给定parent窗口的子窗口。

窗口将嵌入到父窗口中,其坐标相对于父窗口。

屏幕是从父级继承的。

另请参阅

setParent()

accessibleRoot()
Return type:

QAccessibleInterface

activeChanged()

属性 activeᅟ 的通知信号。

alert(msec)
Parameters:

毫秒 – 整数

导致警报显示msec毫秒。如果msec0(默认值),则警报将无限期显示,直到窗口再次变为活动状态。此函数对活动窗口没有影响。

在警报状态下,窗口表示它需要关注,例如通过闪烁或跳动任务栏条目。

baseSize()
Return type:

QSize

返回窗口的基本大小。

另请参阅

setBaseSize()

close()
Return type:

布尔

关闭窗口。

这将关闭窗口,实际上调用了destroy(),并可能退出应用程序。成功时返回true,如果它有父窗口(在这种情况下应关闭顶层窗口),则返回false。

closeEvent(ev)
Parameters:

evQCloseEvent

重写此方法以处理关闭事件 (ev)。

当请求关闭窗口时调用该函数。如果你想阻止窗口关闭,可以在事件上调用QEvent::ignore()。

另请参阅

close()

contentOrientation()
Return type:

ScreenOrientation

属性 contentOrientationᅟ 的获取器。

contentOrientationChanged(orientation)
Parameters:

orientationScreenOrientation

属性 contentOrientationᅟ 的通知信号。

create()

分配与窗口相关的平台资源。

正是在这一点上,使用setFormat()设置的表面格式被解析为实际的本地表面。然而,窗口在调用setVisible()之前仍然保持隐藏状态。

请注意,通常不需要直接调用此函数,因为它将由show()setVisible()winId()以及其他需要访问平台资源的函数隐式调用。

如有必要,调用destroy()以释放平台资源。

另请参阅

destroy()

cursor()
Return type:

QCursor

此窗口的光标形状

另请参阅

setCursor() unsetCursor()

destroy()

释放与此窗口关联的本机平台资源。

另请参阅

create()

devicePixelRatio()
Return type:

浮点数

返回窗口的物理像素与设备独立像素之间的比率。此值取决于窗口所在的屏幕,并且当窗口移动时可能会发生变化。

常见值为普通显示器上的1.0和苹果“视网膜”显示器上的2.0。

注意

对于没有平台窗口支持的窗口,意味着create()未被调用,该函数将回退到关联的QScreen的设备像素比。

另请参阅

devicePixelRatio()

exposeEvent(ev)
Parameters:

evQExposeEvent

当窗口在未暴露和暴露状态之间移动时,窗口系统会发送暴露事件(ev)。

一个暴露的窗口可能对用户可见。如果窗口被移出屏幕,被另一个窗口完全遮挡,被最小化,或类似情况,可能会调用此函数,并且isExposed()的值可能会变为false。您可以使用此事件来限制昂贵的操作,例如动画,仅在窗口暴露时运行。

此事件不应用于绘制。要处理绘制,请改为实现 paintEvent()

在窗口首次显示时,调整大小事件总是在暴露事件之前发送。

另请参阅

paintEvent() isExposed()

filePath()
Return type:

字符串

此窗口表示的文件名。

另请参阅

setFilePath()

flags()
Return type:

WindowType的组合

另请参阅

setFlags()

属性 flagsᅟ 的获取器。

focusInEvent(ev)
Parameters:

evQFocusEvent

重写此方法以处理焦点事件(ev)。

当窗口接收到键盘焦点时,会发送焦点事件。

另请参阅

focusOutEvent()

focusObject()
Return type:

QObject

返回将成为与焦点相关事件(如键盘事件)的最终接收者的QObject。

focusObjectChanged(object)
Parameters:

对象QObject

当与焦点相关的事件的最终接收者更改为 object 时,会发出此信号。

另请参阅

focusObject()

focusOutEvent(ev)
Parameters:

evQFocusEvent

重写此方法以处理焦点移出事件 (ev)。

当窗口失去键盘焦点时,会发送焦点失去事件。

另请参阅

focusInEvent()

frameGeometry()
Return type:

QRect

返回窗口的几何形状,包括其窗口框架。

几何形状与其屏幕的virtualGeometry()相关。

另请参阅

geometry() frameMargins()

frameMargins()
Return type:

QMargins

返回窗口周围的窗口框架边距。

framePosition()
Return type:

QPoint

返回窗口的左上角位置,包括其窗口框架。

这将返回与frameGeometry() .topLeft()相同的值。

static fromWinId(id)
Parameters:

idWId

Return type:

QWindow

创建一个由另一个进程或使用Qt下的本地库创建的窗口的本地表示。

给定一个本地窗口的句柄 id,此方法创建一个 QWindow 对象,该对象可用于在调用诸如 setParent()setTransientParent() 等方法时表示该窗口。

这可以在支持的平台上使用,以将QWindow嵌入到本地窗口中,或将本地窗口嵌入到QWindow中。

如果平台插件不支持外部窗口或嵌入本机窗口失败,此函数将返回None

注意

生成的QWindow不应被用来操作底层的原生窗口(除了重新设置父窗口),也不应被用来观察原生窗口的状态变化。对于这类操作的支持是偶然的,高度依赖于平台,并且未经测试。

另请参阅

setParent()

geometry()
Return type:

QRect

返回窗口的几何形状,不包括其窗口框架。

几何形状与其屏幕的virtualGeometry()相关。

height()
Return type:

整数

另请参阅

setHeight()

属性 heightᅟ 的获取器。

heightChanged(arg)
Parameters:

arg – 整数

属性 heightᅟ 的通知信号。

hide()

隐藏窗口。

等同于调用 setVisible (false)。

另请参阅

show() setVisible()

hideEvent(ev)
Parameters:

evQHideEvent

重写此方法以处理隐藏事件(ev)。

当窗口在窗口系统中请求隐藏时,将调用此函数。

icon()
Return type:

QIcon

返回窗口在窗口系统中的图标

另请参阅

setIcon()

isActive()
Return type:

布尔

如果窗口是活动的,返回 true

这种情况适用于具有输入焦点的窗口以及位于与焦点窗口相同的父/瞬态父链中的窗口。

通常,活动窗口应该从样式角度看起来是活动的。

要获取当前具有焦点的窗口,请使用 focusWindow()

另请参阅

requestActivate()

属性 activeᅟ 的获取器。

isAncestorOf(child[, mode=QWindow.AncestorMode.IncludeTransients])
Parameters:
Return type:

布尔

如果窗口是给定child的祖先,则返回true。如果modeIncludeTransients,则临时父窗口也被视为祖先。

isExposed()
Return type:

布尔

返回此窗口是否在窗口系统中暴露。

当窗口未暴露时,它由应用程序显示,但仍未在窗口系统中显示,因此应用程序应尽量减少动画和其他图形活动。

每当这个值发生变化时,都会发送一个exposeEvent()

另请参阅

exposeEvent()

isModal()
Return type:

布尔

返回窗口是否为模态。

模态窗口阻止其他窗口获取任何输入。

另请参阅

modality

isTopLevel()
Return type:

布尔

返回窗口是否为顶层窗口,即没有父窗口。

isVisible()
Return type:

布尔

属性 visibleᅟ 的获取器。

keyPressEvent(ev)
Parameters:

evQKeyEvent

重写此方法以处理按键事件 (ev)。

另请参阅

keyReleaseEvent()

keyReleaseEvent(ev)
Parameters:

evQKeyEvent

重写此方法以处理按键释放事件(ev)。

另请参阅

keyPressEvent()

lower()

在窗口系统中降低窗口。

请求将窗口降低以显示在其他窗口下方。

mapFromGlobal(pos)
Parameters:

posQPoint

Return type:

QPoint

这是一个重载函数。

mapFromGlobal(pos)
Parameters:

posQPointF

Return type:

QPointF

将全局屏幕坐标 pos 转换为窗口坐标。

另请参阅

mapToGlobal()

mapToGlobal(pos)
Parameters:

posQPoint

Return type:

QPoint

这是一个重载函数。

mapToGlobal(pos)
Parameters:

posQPointF

Return type:

QPointF

将窗口坐标 pos 转换为全局屏幕坐标。例如,mapToGlobal(QPointF(0,0)) 将给出窗口左上角像素的全局坐标。

另请参阅

mapFromGlobal()

mask()
Return type:

QRegion

返回在窗口上设置的掩码。

遮罩是向窗口系统的一个提示,表示应用程序不希望接收给定区域之外的鼠标或触摸输入。

另请参阅

setMask()

maximumHeight()
Return type:

整数

另请参阅

setMaximumHeight()

属性 maximumHeightᅟ 的获取器。

maximumHeightChanged(arg)
Parameters:

arg – 整数

属性 maximumHeightᅟ 的通知信号。

maximumSize()
Return type:

QSize

返回窗口的最大尺寸。

另请参阅

setMaximumSize()

maximumWidth()
Return type:

整数

另请参阅

setMaximumWidth()

属性 maximumWidthᅟ 的获取器。

maximumWidthChanged(arg)
Parameters:

arg – 整数

属性 maximumWidthᅟ 的通知信号。

minimumHeight()
Return type:

整数

另请参阅

setMinimumHeight()

属性 minimumHeightᅟ 的获取器。

minimumHeightChanged(arg)
Parameters:

arg – 整数

属性 minimumHeightᅟ 的通知信号。

minimumSize()
Return type:

QSize

返回窗口的最小尺寸。

另请参阅

setMinimumSize()

minimumWidth()
Return type:

整数

另请参阅

setMinimumWidth()

属性 minimumWidthᅟ 的获取器。

minimumWidthChanged(arg)
Parameters:

arg – 整数

属性 minimumWidthᅟ 的通知信号。

modality()
Return type:

WindowModality

另请参阅

setModality()

属性 modalityᅟ 的获取器。

modalityChanged(modality)
Parameters:

模态WindowModality

当Qwindow::modality属性更改为modality时,会发出此信号。

属性 modalityᅟ 的通知信号。

mouseDoubleClickEvent(ev)
Parameters:

evQMouseEvent

重写此方法以处理鼠标双击事件 (ev)。

mouseMoveEvent(ev)
Parameters:

evQMouseEvent

重写此方法以处理鼠标移动事件 (ev)。

mousePressEvent(ev)
Parameters:

evQMouseEvent

重写此方法以处理鼠标按下事件 (ev)。

另请参阅

mouseReleaseEvent()

mouseReleaseEvent(ev)
Parameters:

evQMouseEvent

重写此方法以处理鼠标释放事件 (ev)。

另请参阅

mousePressEvent()

moveEvent(ev)
Parameters:

evQMoveEvent

重写此方法以处理窗口移动事件 (ev)。

nativeEvent(eventType, message)
Parameters:
Return type:

PyObject

重写此方法以处理平台相关的事件。将会接收到 eventType, messageresult

这可能会使您的应用程序不可移植。

只有在事件被处理时才应返回true。

opacity()
Return type:

浮点数

另请参阅

setOpacity()

属性 opacityᅟ 的获取器。

opacityChanged(opacity)
Parameters:

opacity – 浮点数

属性 opacityᅟ 的通知信号。

paintEvent(ev)
Parameters:

evQPaintEvent

每当窗口的某个区域需要重新绘制时,窗口系统会发送绘制事件(ev),例如在最初显示窗口时,或者由于移动另一个窗口而暴露了窗口的部分区域。

应用程序预计会在响应绘制事件时渲染到窗口中,无论窗口的暴露状态如何。例如,在窗口暴露之前可能会发送一个绘制事件,以便为用户显示做好准备。

另请参阅

exposeEvent()

parent([mode=QWindow.AncestorMode.ExcludeTransients])
Parameters:

modeAncestorMode

Return type:

QWindow

返回父窗口(如果有的话)。

如果 modeIncludeTransients,那么在没有父级的情况下将返回瞬态父级。

没有父窗口的窗口被称为顶级窗口。

另请参阅

setParent()

position()
Return type:

QPoint

返回窗口在桌面上的位置,不包括任何窗口框架

注意

并非所有的窗口系统都支持设置或查询顶层窗口的位置。在这样的系统上,以编程方式移动窗口可能没有任何效果,并且可能会返回当前位置的人工值,例如QPoint(0, 0)

另请参阅

setPosition()

raise_()
reportContentOrientationChange(orientation)
Parameters:

orientationScreenOrientation

属性 contentOrientationᅟ 的设置器。

requestActivate()

请求窗口被激活,即接收键盘焦点。

另请参阅

isActive() focusWindow()

requestUpdate()

安排一个QEvent::UpdateRequest事件发送到此窗口。

事件在可能的情况下与显示器的垂直同步信号同步传递。否则,事件将在最多5毫秒的延迟后传递。如果窗口关联的屏幕报告的刷新率 高于60 Hz,则间隔会缩小到小于5的值。额外的时间是为了给事件循环一些空闲时间来收集系统事件,并且可以使用QT_QPA_UPDATE_IDLE_TIME环境变量进行覆盖。

在驱动动画时,此函数应在绘制完成后调用一次。多次调用此函数将导致单个事件被传递到窗口。

QWindow 的子类应该重新实现 event(),拦截事件并调用应用程序的渲染代码,然后调用基类的实现。

注意

子类对event()的重新实现必须调用基类的实现,除非它绝对确定该事件不需要由基类处理。例如,此函数的默认实现依赖于QEvent::Timer事件。因此,过滤掉它们将破坏更新事件的传递。

requestedFormat()
Return type:

QSurfaceFormat

返回此窗口请求的表面格式。

如果平台实现不支持请求的格式,请求的格式将与实际的窗口格式不同。

这是用setFormat()设置的值。

另请参阅

setFormat() format()

resize(newSize)
Parameters:

newSizeQSize

设置窗口的大小,不包括任何窗口框架,为 newSize

另请参阅

size() geometry()

resize(w, h)
Parameters:
  • w – 整数

  • h – 整数

设置窗口的大小,不包括任何窗口框架,设置为由宽度 w 和高度 h 构造的 QSize

要交互式调整窗口大小,请参见 startSystemResize()

另请参阅

size() geometry()

resizeEvent(ev)
Parameters:

evQResizeEvent

重写此方法以处理调整大小事件(ev)。

每当窗口在窗口系统中调整大小时,都会调用resize事件,无论是通过窗口系统直接确认setGeometry()resize()请求,还是通过用户手动调整窗口大小间接触发。

resolveInterface(name, revision)
Parameters:
  • name – str

  • revision – int

Return type:

void

screen()
Return type:

QScreen

返回显示窗口的屏幕,如果没有则返回null。

对于子窗口,这将返回相应顶级窗口的屏幕。

screenChanged(screen)
Parameters:

屏幕QScreen

当窗口的screen发生变化时,会发出此信号,无论是通过setScreen()显式设置,还是在窗口的屏幕被移除时自动发生。

setBaseSize(size)
Parameters:

大小QSize

设置窗口的基本size

如果窗口定义了sizeIncrement(),则使用基础大小来计算适当的窗口大小。

setCursor(cursor)
Parameters:

光标QCursor

设置此窗口的光标形状

鼠标cursor在悬停在此窗口上时将呈现此形状,除非设置了覆盖光标。请参阅预定义光标对象列表以获取一系列有用的形状。

如果没有设置光标,或者在调用unsetCursor()之后,将使用父窗口的光标。

默认情况下,光标具有 Qt::ArrowCursor 形状。

一些底层的窗口实现会在光标离开窗口时重置光标,即使鼠标被捕获。如果你想为所有窗口设置光标,即使是在窗口外部,考虑使用 setOverrideCursor()

setFilePath(filePath)
Parameters:

filePath – str

设置此窗口所代表的文件名。

窗口系统可能会使用 filePath 在标题栏中显示此窗口所代表的文档路径。

另请参阅

filePath()

setFlag(flag[, on=true])
Parameters:

如果 on 为真,则在此窗口上设置窗口标志 flag;否则清除该标志。

另请参阅

setFlags() flags() type()

setFlags(flags)
Parameters:

flagsWindowType 的组合

另请参阅

flags()

属性 flagsᅟ 的设置器。

setFormat(format)
Parameters:

格式QSurfaceFormat

设置窗口的表面format

格式决定了诸如颜色深度、透明度、深度和模板缓冲区大小等属性。例如,为了使窗口具有透明背景(前提是窗口系统支持合成,并且窗口中的其他内容不会使其再次变为不透明):

QSurfaceFormat format;
format.setAlphaBufferSize(8);
window.setFormat(format);

表面格式将在create()函数中解析。在create()函数被调用后再次调用此函数将不会重新解析原生表面的表面格式。

当格式没有通过此函数明确设置时,将使用defaultFormat()返回的格式。这意味着当有多个窗口时,可以在创建第一个窗口之前,通过一次调用setDefaultFormat()来替代对此函数的多次调用。

另请参阅

format() create() destroy() setDefaultFormat()

setFramePosition(point)
Parameters:

QPoint

设置窗口的左上角位置(point),包括其窗口框架。

该位置与其屏幕的virtualGeometry()相关。

setGeometry(rect)
Parameters:

rectQRect

设置窗口的几何形状,不包括其窗口框架,为rect

几何形状与其屏幕的virtualGeometry()相关。

另请参阅

geometry()

setGeometry(posx, posy, w, h)
Parameters:
  • posx – 整数

  • posy – int

  • w – 整数

  • h – 整数

设置窗口的几何形状,不包括其窗口框架,为由posxposywh构建的矩形。

几何形状与其屏幕的virtualGeometry()相关。

另请参阅

geometry()

setHeight(arg)
Parameters:

arg – 整数

另请参阅

height()

属性 heightᅟ 的设置器。

setIcon(icon)
Parameters:

图标QIcon

设置窗口在窗口系统中的icon

窗口图标可能被窗口系统使用,例如用于装饰窗口,和/或在任务切换器中。

注意

在macOS上,窗口标题栏图标用于表示文档的窗口,只有在设置了文件路径时才会显示。

另请参阅

icon() setFilePath()

setKeyboardGrabEnabled(grab)
Parameters:

grab – 布尔值

Return type:

布尔

设置是否应启用键盘抓取(grab)。

如果返回值为true,窗口将接收所有键盘事件,直到调用setKeyboardGrabEnabled(false);其他窗口将不会收到任何键盘事件。鼠标事件不受影响。如果你想捕获鼠标事件,请使用setMouseGrabEnabled()

另请参阅

setMouseGrabEnabled()

setMask(region)
Parameters:

区域QRegion

设置窗口的遮罩。

遮罩是向窗口系统的一个提示,表示应用程序不希望接收给定region之外的鼠标或触摸输入。

窗口管理器可能会选择显示或不显示不包括在遮罩中的任何窗口区域,因此应用程序有责任清除不属于遮罩的区域为透明。

另请参阅

mask()

setMaximumHeight(h)
Parameters:

h – 整数

另请参阅

maximumHeight()

属性 maximumHeightᅟ 的设置器。

setMaximumSize(size)
Parameters:

大小QSize

设置窗口的最大尺寸。

这是对窗口管理器的提示,以防止调整大小超过指定的size

setMaximumWidth(w)
Parameters:

w – 整数

另请参阅

maximumWidth()

属性 maximumWidthᅟ 的设置器。

setMinimumHeight(h)
Parameters:

h – 整数

另请参阅

minimumHeight()

属性 minimumHeightᅟ 的设置器。

setMinimumSize(size)
Parameters:

大小QSize

设置窗口的最小尺寸。

这是对窗口管理器的提示,以防止调整大小低于指定的size

setMinimumWidth(w)
Parameters:

w – 整数

另请参阅

minimumWidth()

属性 minimumWidthᅟ 的设置器。

setModality(modality)
Parameters:

模态WindowModality

另请参阅

modality()

属性 modalityᅟ 的设置器。

setMouseGrabEnabled(grab)
Parameters:

grab – 布尔值

Return type:

布尔

设置是否应启用鼠标抓取(grab)。

如果返回值为true,窗口将接收所有鼠标事件,直到调用setMouseGrabEnabled(false);其他窗口将不会收到任何鼠标事件。键盘事件不受影响。如果你想捕获键盘事件,请使用setKeyboardGrabEnabled()

setOpacity(level)
Parameters:

level – 浮点数

另请参阅

opacity()

属性 opacityᅟ 的设置器。

setParent(parent)
Parameters:

父窗口QWindow

设置parent窗口。这将导致窗口系统管理窗口的裁剪,因此它将被裁剪到parent窗口。

parent设置为None将使窗口成为顶级窗口。

如果 parent 是由 fromWinId() 创建的窗口,那么当前窗口将嵌入到 parent 中,如果平台支持的话。

另请参阅

parent()

setPosition(pt)
Parameters:

ptQPoint

将窗口在桌面上的位置设置为 pt

该位置与其屏幕的virtualGeometry()相关。

要交互式地移动窗口,请参见startSystemMove()。要交互式地调整窗口大小,请参见startSystemResize()

注意

并非所有的窗口系统都支持设置或查询顶层窗口的位置。在这样的系统上,以编程方式移动窗口可能没有任何效果,并且可能会返回当前位置的人工值,例如QPoint(0, 0)

setPosition(posx, posy)
Parameters:
  • posx – 整数

  • posy – int

将窗口在桌面上的位置设置为 posx, posy

该位置与其屏幕的virtualGeometry()相关。

另请参阅

position()

setScreen(screen)
Parameters:

屏幕QScreen

设置窗口应显示的屏幕。

如果窗口已经创建,它将在newScreen上重新创建。

注意

如果屏幕是多个屏幕的虚拟桌面的一部分,窗口将不会自动移动到newScreen。要将窗口相对于屏幕放置,请使用屏幕的topLeft()位置。

此函数仅适用于顶级窗口。

setSizeIncrement(size)
Parameters:

大小QSize

设置窗口的大小增量(size)。

当用户调整窗口大小时,大小将以sizeIncrement()为步长移动。水平方向为width()像素,垂直方向为sizeIncrement()像素,以baseSize()为基础。

默认情况下,此属性包含宽度和高度为零的大小。

窗口系统可能不支持大小增量。

setSurfaceType(surfaceType)
Parameters:

surfaceTypeSurfaceType

设置窗口的surfaceType

指定窗口是用于QBackingStore的光栅渲染,还是用于QOpenGLContext的OpenGL渲染。

surfaceType 将在原生表面在 create() 函数中创建时使用。在原生表面创建后调用此函数需要调用 destroy()create() 来释放旧的原生表面并创建一个新的。

另请参阅

surfaceType() QBackingStore QOpenGLContext create() destroy()

setTitle(arg__1)
Parameters:

arg__1 – str

另请参阅

title()

属性 titleᅟ 的设置器。

setTransientParent(parent)
Parameters:

父窗口QWindow

另请参阅

transientParent()

setVisibility(v)
Parameters:

v可见性

另请参阅

visibility()

属性 visibilityᅟ 的设置器。

setVisible(visible)
Parameters:

visible – 布尔值

另请参阅

isVisible()

属性 visibleᅟ 的设置器。

setWidth(arg)
Parameters:

arg – 整数

另请参阅

width()

属性 widthᅟ 的设置器。

setWindowState(state)
Parameters:

状态WindowState

设置窗口的屏幕占用状态

窗口的state表示窗口在窗口系统中是否显示为最大化、最小化、全屏或正常状态。

枚举值 Qt::WindowActive 不是一个被接受的参数。

setWindowStates(states)
Parameters:

statesWindowState 的组合

设置窗口的屏幕占用状态

窗口的state表示窗口在窗口系统中是否以最大化、最小化和/或全屏显示。

窗口可以处于多种状态的组合中。例如,如果窗口同时处于最小化和最大化状态,窗口将显示为最小化,但点击任务栏条目将恢复为最大化状态。

枚举值 Qt::WindowActive 不应被设置。

setX(arg)
Parameters:

arg – 整数

另请参阅

x()

属性 xᅟ 的设置器。

setY(arg)
Parameters:

arg – 整数

另请参阅

y()

属性 yᅟ 的设置器。

show()

显示窗口。

对于子窗口,这相当于调用showNormal()。否则,它相当于调用showFullScreen()showMaximized()showNormal(),具体取决于窗口类型和标志的平台默认行为。

showEvent(ev)
Parameters:

evQShowEvent

重写此方法以处理显示事件(ev)。

当窗口请求变为可见时调用该函数。

如果窗口系统成功显示窗口,随后将会有调整大小和暴露事件。

showFullScreen()

将窗口显示为全屏。

相当于调用 setWindowStates (Qt::WindowFullScreen) 然后调用 setVisible (true)。

请参阅QWidget::showFullScreen()文档以了解特定平台的注意事项和限制。

showMaximized()

将窗口显示为最大化。

相当于调用 setWindowStates (Qt::WindowMaximized) 然后调用 setVisible (true)。

showMinimized()

将窗口显示为最小化。

相当于调用 setWindowStates (Qt::WindowMinimized) 然后调用 setVisible (true)。

showNormal()

以正常方式显示窗口,即既不最大化,也不最小化,也不是全屏。

相当于调用 setWindowStates (Qt::WindowNoState) 然后调用 setVisible (true)。

sizeIncrement()
Return type:

QSize

返回窗口的大小增量。

另请参阅

setSizeIncrement()

startSystemMove()
Return type:

布尔

启动系统特定的移动操作

调用此操作将在支持它的平台上启动窗口的交互式移动操作。实际行为可能因平台而异。通常,它会使窗口跟随鼠标光标,直到释放鼠标按钮。

在支持此功能的平台上,这种移动窗口的方法比setPosition更受青睐,因为它允许窗口移动具有更原生的外观和感觉,例如让窗口管理器将此窗口与其他窗口对齐,或在拖动到屏幕边缘时具有特殊的平铺或调整大小行为以及动画效果。此外,在某些平台(如Wayland)上,setPosition不受支持,因此这是应用程序影响其位置的唯一方式。

如果系统支持该操作,则返回 true。

startSystemResize(edges)
Parameters:

edgesEdge 的组合

Return type:

布尔

启动系统特定的调整大小操作

调用此操作将在支持它的平台上启动窗口的交互式调整大小操作。实际行为可能因平台而异。通常,它会使窗口调整大小,使其边缘跟随鼠标光标。

在支持它的平台上,这种调整窗口大小的方法比setGeometry更受青睐,因为它允许更原生的窗口调整外观和感觉,例如让窗口管理器将此窗口与其他窗口对齐,或在拖动到屏幕边缘时具有特殊调整大小行为的动画。

edges 应该是一个单独的边,或者两个相邻的边(一个角)。其他值是不允许的。

如果系统支持该操作,则返回 true。

tabletEvent(ev)
Parameters:

evQTabletEvent

重写此方法以处理平板电脑的按下、移动和释放事件(ev)。

邻近进入和离开事件不会发送到窗口,它们会传递给应用程序实例。

title()
Return type:

字符串

另请参阅

setTitle()

属性 titleᅟ 的获取器。

touchEvent(ev)
Parameters:

evQTouchEvent

重写此方法以处理触摸事件 (ev)。

transientParent()
Return type:

QWindow

另请参阅

setTransientParent()

transientParentChanged(transientParent)
Parameters:

transientParentQWindow

type()
Return type:

WindowType

返回窗口的类型。

这将返回窗口标志中表示窗口是否为对话框、工具提示、弹出窗口、常规窗口等的部分。

另请参阅

flags() setFlags()

unsetCursor()

恢复此窗口的默认箭头光标。

visibility()
Return type:

可见性

另请参阅

setVisibility()

获取属性 visibilityᅟ 的Getter。

visibilityChanged(visibility)
Parameters:

可见性Visibility

属性 visibilityᅟ 的通知信号。

visibleChanged(arg)
Parameters:

arg – 布尔值

属性 visibleᅟ 的通知信号。

wheelEvent(ev)
Parameters:

evQWheelEvent

重写此方法以处理鼠标滚轮或其他滚轮事件(ev)。

width()
Return type:

整数

另请参阅

setWidth()

属性 widthᅟ 的获取器。

widthChanged(arg)
Parameters:

arg – 整数

属性 widthᅟ 的通知信号。

winId()
Return type:

WId

返回窗口的平台ID。

注意

如果平台窗口尚未创建,此函数将导致平台窗口被创建。如果平台窗口创建失败,则返回0。

对于可能需要此ID的平台,返回的值将唯一地表示相应屏幕内的窗口。

另请参阅

screen()

windowState()
Return type:

WindowState

窗口的屏幕占用状态

windowStateChanged(windowState)
Parameters:

windowStateWindowState

windowState发生变化时,会发出此信号,无论是通过setWindowStates()显式设置,还是当用户点击标题栏按钮或其他方式自动触发。

windowStates()
Return type:

WindowState的组合

窗口的屏幕占用状态

窗口可以处于多种状态的组合中。例如,如果窗口同时处于最小化和最大化状态,窗口将显示为最小化,但点击任务栏条目将恢复为最大化状态。

另请参阅

setWindowStates()

windowTitleChanged(title)
Parameters:

标题 – str

属性 titleᅟ 的通知信号。

x()
Return type:

整数

另请参阅

setX()

属性 xᅟ 的获取器。

xChanged(arg)
Parameters:

arg – 整数

属性 xᅟ 的通知信号。

y()
Return type:

整数

另请参阅

setY()

属性 yᅟ 的获取器。

yChanged(arg)
Parameters:

arg – 整数

属性 yᅟ 的通知信号。