class QWindow#

QWindow 类代表底层窗口系统中的一个窗口。 更多信息

Inheritance diagram of PySide6.QtGui.QWindow

继承自: QQuickWindowQQuickViewQPaintDeviceWindowQOpenGLWindowQRasterWindowQt3DWindow

摘要#

属性#

  • active - 窗口的活动状态

  • contentOrientation - 窗口内容的方向

  • flags - 窗口的标志

  • height - 窗口几何形状的高度

  • maximumHeight - 窗口几何形状的最大高度

  • maximumWidth - 窗口几何形状的最大宽度

  • minimumHeight - 窗口几何形状的最小高度

  • minimumWidth - 窗口几何的最小宽度

  • modality - 窗口的模态性

  • opacity - 窗口在窗口系统中的透明度

  • title - 窗口在窗口系统中的标题

  • visibility - 窗口的屏幕占用状态

  • visible - 窗口是否可见

  • width - 窗口几何的宽度

  • x - 窗口几何的x位置

  • y - 窗口几何的y位置

方法#

虚方法#

槽函数#

信号#

静态函数#

注意

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

详细描述#

给定父窗口的窗口变成父窗口的原生子窗口。

应用程序通常使用QWidget或QQuickView作为其UI,而不是直接使用QWindow。但是,在需要保持最小依赖性或直接使用OpenGL的情况下,可以使用QBackingStoreQOpenGLContext直接渲染到QWindow。使用这两种方法渲染到QWindow的实用示例是Raster Window Example和OpenGL Window Example。

资源管理#

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

内容方向#

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

可见性和窗口化系统曝光#

默认情况下,窗口不可见,您必须调用 setVisible(true)或 show() 或类似的方法使它可见。要使窗口再次隐藏,调用 setVisible(false)或 hide()。可见属性描述了应用程序希望窗口处于的状态。根据底层系统,一个可见窗口可能仍然不会显示在屏幕上。例如,它可能被其他不透明窗口所覆盖,或移动到屏幕物理区域之外。在具有曝光通知的窗口系统中,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

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

QWindow.Minimized

窗口将根据窗口系统处理最小化窗口的方式,在任务栏、Dock、任务列表或桌面上减少为一个入口或图标。

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

访问函数
property contentOrientationᅟ: Qt.ScreenOrientation#

此属性保留窗口内容的方向。

这是向窗口管理器提供的一个提示,以防需要显示与窗口相关的额外内容,如弹出窗口、对话框、状态栏等。

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

窗口和内容方向的差异决定了内容应旋转多少。可以使用angleBetween()transformBetween(),和mapBetween()来计算所需的转换。

默认值是Qt::PrimaryOrientation

访问函数
属性flags: Qt.WindowType 的组合#

该属性包含窗口的标志。

窗口标志控制窗口在窗口系统中的外观,是对话框、弹出窗口还是普通窗口,以及是否有标题栏等。

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

另请参阅

setFlag()

访问函数
属性height: int#

该属性包含窗口几何形状的高度。

访问函数
属性maximumHeight: int#

该属性包含窗口几何形状的最大高度。

访问函数
属性maximumWidth: int#

该属性包含窗口几何形状的最大宽度。

访问函数
属性minimumHeight: int#

该属性包含窗口几何形状的最小高度。

访问函数
属性minimumWidth: int#

该属性包含窗口几何形状的最小宽度。

访问函数
属性 窗口模态: Qt.WindowModality#

该属性保存窗口的模态。

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

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

另请参阅

WindowModality

访问函数
属性 窗口不透明度: float#

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

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

值为 1.0 或以上被视为完全不透明,而值为 0.0 或以下则被视为完全透明。介于两者之间的值代表两种极端之间变化的不透明程度。

默认值为 1.0。

访问函数
属性 窗口标题: str#

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

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

另请参阅

flags()

访问函数
属性 窗口可见性: QWindow.Visibility#

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

可见性表示窗口应以普通、最小化、最大化、全屏或隐藏的方式出现在窗口系统中。

将可见性设置为 AutomaticVisibility 表示授予窗口一个默认可见状态,这取决于平台,可能是全屏或窗口模式。当读取可见性属性时,您将始终获得实际状态,而不是 AutomaticVisibility

访问函数
属性 可见性: bool#

该属性保存窗口是否可见。

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

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

注意

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

另请参阅

show()

访问函数
属性widthᅟ: int

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

访问函数
属性xᅟ: int

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

访问函数
属性yᅟ: int

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

访问函数
__init__(parent)
参数:

parentQWindow

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

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

屏幕将从父窗口继承。

另请参阅

setParent()

__init__([screen=None])
参数:

screenQScreen

targetScreen 上创建一个作为顶级窗口的窗口。

窗口显示前需调用 setVisible (true), show() 或类似操作。

另请参阅

setScreen()

accessibleRoot()#
返回类型:

QAccessibleInterface

activeChanged()#

属性 active 通知信号。

alert(msec)#
参数:

msec – int

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

在警报状态中,窗口会表明需要注意力,例如通过闪烁或弹跳任务栏条目。

baseSize()#
返回类型:

QSize

返回窗口的基本大小。

另请参阅

setBaseSize()

close()#
返回类型:

bool

关闭窗口。

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

closeEvent(arg__1)#
参数:

arg__1QCloseEvent

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

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

另请参阅

close()

contentOrientation()#
返回类型:

ScreenOrientation

属性 contentOrientation 的获取器。

contentOrientationChanged(orientation)#
参数:

orientationScreenOrientation

属性 contentOrientation 的通知信号。

create()#

为窗口分配平台资源。

在这一步,使用 setFormat() 设置的表面格式被解析为实际的本地表面。但是,窗户直到调用 setVisible() 之前仍然是隐藏的。

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

如果需要,调用 destroy() 以释放与窗口相关联的平台资源。

另请参阅

destroy()

cursor()#
返回类型:

QCursor

此窗口的光标形状

另请参阅

setCursor() unsetCursor()

destroy()#

释放与此窗口相关的本地平台资源。

另请参阅

create()

devicePixelRatio()#
返回类型:

float

返回物理像素与设备独立像素之间的比,用于窗口。此值依赖于窗口所在的屏幕,并在窗口移动时可能会更改。

常见值是正常显示器上的 1.0 和苹果“视网膜”显示器上的 2.0。

注意

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

另请参阅

devicePixelRatio()

exposeEvent(arg__1)#
参数:

arg__1QExposeEvent

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

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

这个事件不应该用于绘画。要处理绘画实现paintEvent()代替。

在窗口第一次显示时,将对事件发送调整大小事件,然后是暴露事件。

另请参阅

paintEvent() isExposed()

filePath()#
返回类型:

str

窗口表示的文件名。

另请参阅

setFilePath()

flags()#
返回类型:

WindowType

另请参阅

setFlags()

属性flags的获取器。

focusInEvent(arg__1)#
参数:

arg__1QFocusEvent

覆盖此方法以处理焦点进入事件(ev)。

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

另请参阅

focusOutEvent()

focusObject()#
返回类型:

QObject

返回将接收与焦点相关事件的最终QObject,例如按键事件。

focusObjectChanged(object)#
参数:

objectQObject

当与焦点相关事件的最终接收器变为object时,发出此信号。

另请参阅

focusObject()

focusOutEvent(arg__1)#
参数:

arg__1QFocusEvent

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

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

另请参阅

focusInEvent()

frameGeometry()链接到此处
返回类型:

QRect

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

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

另请参阅

geometry() frameMargins()

frameMargins()链接到此处
返回类型:

QMargins

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

framePosition()链接到此处
返回类型:

QPoint

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

此返回值与frameGeometry() .topLeft()相同。

静态 fromWinId(id)链接到此处
参数:

idWId

返回类型:

QWindow

创建由其他进程或使用Qt以下的原生库创建的窗口的本地表示。

给定指向原生窗口的句柄 id,此方法创建一个 QWindow 对象,可以用于调用 setParent()setTransientParent() 等方法时表示窗口。

在支持此功能的平台上,可以使用此功能在原生窗口中嵌入 QWindow,或在 QWindow 中嵌入原生窗口。

如果不支持外部窗口或在平台插件中嵌入原生窗口失败,此函数返回 None

注意

生成的 QWindow 不应用于(除了重新父化外)操作底层本机窗口或观察本机窗口的状态变化。对这些类型操作的支持是偶然的、高度依赖于平台且未经测试的。

另请参阅

setParent()

geometry()#
返回类型:

QRect

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

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

height()#
返回类型:

int

另请参阅

setHeight()

属性 heightᅟ 的获取器。

heightChanged(arg)#
参数:

arg – int

heightᅟ 属性的通知信号。

hide()#

隐藏窗口。

相当于调用 setVisible (false)。

另请参阅

show() setVisible()

hideEvent(arg__1)#
参数:

arg__1QHideEvent

覆盖此方法以处理隐藏事件(ev)。

当窗口请求在窗口管理系统中被隐藏时,会调用此函数。

icon()#
返回类型:

QIcon

返回窗口管理系统中窗口的图标

另请参阅

setIcon()

isActive()#
返回类型:

bool

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

这种情况适用于具有输入焦点以及与焦点窗口在相同的父级 / 暂时父级链中的窗口。

通常从样式角度来看,活动窗口应表现出活动状态。

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

另请参阅

requestActivate()

属性 active 的获取器。

isAncestorOf(child[, mode=QWindow.AncestorMode.IncludeTransients])#
参数:
返回类型:

bool

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

isExposed()#
返回类型:

bool

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

当窗口未暴露时,它由应用程序显示,但在窗口系统中尚未显示,因此应用程序应最小化动画和其他图形活动。

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

另请参阅

exposeEvent()

isModal()#
返回类型:

bool

返回窗口是否是模态的。

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

另请参阅

模态

isTopLevel()#
返回类型:

bool

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

isVisible()#
返回类型:

bool

属性 visible 的获取器。

keyPressEvent(arg__1)#
参数:

arg__1QKeyEvent

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

另请参阅

keyReleaseEvent()

keyReleaseEvent(arg__1)#
参数:

arg__1QKeyEvent

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

另请参阅

keyPressEvent()

lower()#

在窗口系统中降低窗口。

请求将窗口降低到其他窗口之下显示。

mapFromGlobal(pos)#
参数:

posQPoint

返回类型:

QPoint

这是一个重载函数。

mapFromGlobal(pos)
参数:

posQPointF

返回类型:

QPointF

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

另请参阅

mapToGlobal()

mapToGlobal(pos)#
参数:

posQPoint

返回类型:

QPoint

这是一个重载函数。

mapToGlobal(pos)
参数:

posQPointF

返回类型:

QPointF

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

另请参阅

mapFromGlobal()

mask()#
返回类型:

QRegion

返回窗口上设置的掩码。

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

另请参阅

setMask()

maximumHeight()#
返回类型:

int

另请参阅

setMaximumHeight()

属性maximumHeight的获取器。

maximumHeightChanged(arg)#
参数:

arg – int

属性maximumHeight的属性变化通知信号。

maximumSize()#
返回类型:

QSize

返回窗口的最大尺寸。

另请参阅

setMaximumSize()

maximumWidth()#
返回类型:

int

另请参阅

setMaximumWidth()

属性maximumWidth的获取器。

maximumWidthChanged(arg)#
参数:

arg – int

属性maximumWidth的属性变化通知信号。

minimumHeight()#
返回类型:

int

另请参阅

setMinimumHeight()

属性 minimumHeight 的获取器。

minimumHeightChanged(arg)#
参数:

arg – int

属性 minimumHeight 的更改通知信号。

minimumSize()#
返回类型:

QSize

返回窗口的最小尺寸。

另请参阅

setMinimumSize()

minimumWidth()#
返回类型:

int

另请参阅

setMinimumWidth()

属性 minimumWidth 的获取器。

minimumWidthChanged(arg)#
参数:

arg – int

属性 minimumWidth 的更改通知信号。

modality()#
返回类型:

WindowModality

另请参阅

setModality()

属性 modality 的获取器。

modalityChanged(modality)#
参数:

modalityWindowModality

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

属性 modality 的更改通知信号。

mouseDoubleClickEvent(arg__1)#
参数:

arg__1QMouseEvent

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

mouseMoveEvent(arg__1)#
参数:

arg__1QMouseEvent

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

mousePressEvent(arg__1)#
参数:

arg__1QMouseEvent

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

另请参阅

mouseReleaseEvent()

mouseReleaseEvent(arg__1)#
参数:

arg__1QMouseEvent

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

另请参阅

mousePressEvent()

moveEvent(arg__1)#
参数:

arg__1QMoveEvent

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

nativeEvent(eventType, message)#
参数:
返回类型:

PyObject

覆盖此方法以处理平台相关事件。将提供 eventTypemessageresult

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

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

opacity()#
返回类型:

float

另请参阅

setOpacity()

属性 opacityᅟ 的获取器。

opacityChanged(opacity)#
参数:

opacity – float

属性 opacityᅟ 的通知信号。

paintEvent(arg__1)#
参数:

arg__1QPaintEvent

当窗口的某个区域需要重绘时,例如最初显示窗口或由于其他窗口的移动而未被覆盖的窗口部分时,窗口系统会发送绘制事件(ev)。

对于绘制事件,不管窗口的暴露状态如何,应用程序都应该在窗口中进行渲染。例如,在窗口被暴露之前可能发送绘制事件,以便为向用户显示做好准备。

另请参阅

exposeEvent()

parent([mode=QWindow.AncestorMode.ExcludeTransients])#
参数:

modeAncestorMode

返回类型:

QWindow

返回父窗口(如果有)。

如果 modeIncludeTransients ,则在没有父窗口时返回临时父窗口。

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

另请参阅

setParent()

position()#
返回类型:

QPoint

返回窗口在桌面上的位置,排除任何窗口框架。

注意

并非所有窗口系统都支持设置或查询顶级窗口位置。在这样的系统中,程序性地移动窗口可能没有效果,并且可能会返回人工值作为当前位置,例如 QPoint(0, 0)

另请参阅

setPosition()

raise_()#
reportContentOrientationChange(orientation)#
参数:

orientationScreenOrientation

属性 contentOrientationᅟ 的设置器。

requestActivate()#

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

另请参阅

isActive() focusWindow()

requestUpdate()#

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

在可能的地方,该事件将在显示与 vsync 同步的情况下发送。否则,事件将在最多 5 毫秒的延迟后发送。如果窗口关联的屏幕报告的refresh rate高于 60 Hz,则间隔将被缩小到小于 5 的值。额外的时段是为了给事件循环一点空闲时间来收集系统事件,并且可以用 QT_QPA_UPDATE_IDLE_TIME 环境变量来覆盖。

当驱动动画时,应该在绘制完成之后调用此函数一次。多次调用此函数会将单个事件发送到窗口。

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

注意

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

requestedFormat()#
返回类型:

QSurfaceFormat

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

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

这是通过setFormat()设置的值。

另请参阅

setFormat() format()

resize(newSize)#
参数:

newSizeQSize

设置窗口的尺寸(不包括任何窗口框架),为newSize

另请参阅

size() geometry()

resize(w, h)
参数:
  • w – int

  • h – int

设置窗口的尺寸(不包括任何窗口框架),到一个由宽度 w 和高度 h 构造的QSize

有关交互式调整窗口大小,请参阅 startSystemResize()

另请参阅

size() geometry()

resizeEvent(arg__1)#
参数:

arg__1QResizeEvent

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

在窗口管理系统中调整窗口大小时调用此方法,无论是通过窗口管理系统确认setGeometry()resize() 请求,或者通过用户手动调整窗口大小时间接调用。

resolveInterface(name, revision)#
参数:
  • name – str

  • revision – int

返回类型:

void

screen()#
返回类型:

QScreen

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

对于子窗口,此方法返回对应的最顶层窗口的屏幕。

另请参阅

使用以下方法:

setScreen()virtualSiblings()

screenChanged(screen)
参数:

screenQScreen

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

setBaseSize(size)
参数:

sizeQSize

设置窗口的基础 size

基础大小时,如果窗口定义了 sizeIncrement(),将用于计算合适的窗口大小。

setCursor(arg__1)
参数:

arg__1QCursor

设置此窗口的光标形状。

鼠标光标位于此窗口上时,光标将采用此形状,除非设置了替代光标。有关一系列有用形状的预定义光标对象列表,请参阅。

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

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

一些底层的窗口实现,如果鼠标离开了窗口,即使是抓取了鼠标,也会重置光标。如果您想为所有窗口设置光标,即使在窗口之外,请考虑使用 setOverrideCursor()

setFilePath(filePath)#
参数:

filePath – str

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

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

另请参阅

filePath()

setFlag(arg__1[, on=true])#
参数:

如果 on 为 true,则设置该窗口的窗口标志 flag;否则清除标志。

另请参阅

setFlags() flags() type()

setFlags(flags)#
参数:

flagsWindowType 的组合

另请参阅

flags()

属性 flags 的设置器。

setFormat(format)#
参数:

formatQSurfaceFormat

设置窗口的表面 format

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

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

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

当此函数未明确设置格式时,将使用defaultFormat() 返回的格式。这意味着当有多个窗口时,可以为创建第一个窗口之前的单个调用使用setDefaultFormat()

另请参阅

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

setFramePosition(point)#
参数:

pointQPoint

设置窗口(point)的左上角位置,包括其标题栏和边框。

位置相对于屏幕的虚拟几何体。

setGeometry(rect)#
参数:

rectQRect

将窗口的几何形状(不包括其窗口边框)设置为rect

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

另请参阅

geometry()

setGeometry(posx, posy, w, h)
参数:
  • posx – int

  • posy – int

  • w – int

  • h – int

将窗口的几何形状(不包括其窗口边框)设置为从posxposywh构造的矩形。

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

另请参阅

geometry()

setHeight(arg)#
参数:

arg – int

另请参阅

height()

属性height的设置器。

setIcon(icon)#
参数:

图标QIcon

设置窗口在窗口系统中的 图标

窗口图标可能会被窗口系统用于装饰窗口,或者在任务切换器中。

注意

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

另请参阅

icon() setFilePath()

setKeyboardGrabEnabled(grab)#
参数:

grab – bool

返回类型:

bool

设置是否启用键盘捕获 (grab)。

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

另请参阅

setMouseGrabEnabled()

setMask(region)#
参数:

regionQRegion

设置窗口的遮罩。

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

窗口管理器可能会也可能不会选择显示遮罩之外的区域,因此使不属于遮罩的区域透明是应用程序的责任。

另请参阅

mask()

setMaximumHeight(h)#
参数:

h – int

另请参阅

maximumHeight()

属性 maximumHeight 的设置器。

setMaximumSize(size)#
参数:

sizeQSize

设置窗口的最大大小。

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

setMaximumWidth(w)#
参数:

w – int

另请参阅

maximumWidth()

属性的设置器 maximumWidthᅟ .

setMinimumHeight(h)#
参数:

h – int

另请参阅

minimumHeight()

属性的设置器 minimumHeightᅟ .

setMinimumSize(size)#
参数:

sizeQSize

设置窗口的最小大小。

这是向窗口管理器的一个提示,防止大小调整到指定的 size 以下。

setMinimumWidth(w)#
参数:

w – int

另请参阅

minimumWidth()

属性的设置器 minimumWidthᅟ .

setModality(modality)#
参数:

modalityWindowModality

另请参阅

modality()

属性的设置器 modalityᅟ .

setMouseGrabEnabled(grab)#
参数:

grab – bool

返回类型:

bool

设置是否启用鼠标捕获(grab)。

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

setOpacity(level)#
参数:

level – float

另请参阅

opacity()

属性的设置器 opacityᅟ .

setParent(parent)#
参数:

parentQWindow

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

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

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

另请参阅

parent()

setPosition(pt)#
参数:

ptQPoint

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

位置相对于屏幕的虚拟几何体。

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

注意

并非所有窗口系统都支持设置或查询顶级窗口位置。在这样的系统中,程序性地移动窗口可能没有效果,并且可能会返回人工值作为当前位置,例如 QPoint(0, 0)

setPosition(posx, posy)
参数:
  • posx – int

  • posy – int

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

位置相对于屏幕的虚拟几何体。

另请参阅

position()

setScreen(screen)#
参数:

screenQScreen

设置应显示窗口的屏幕。

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

注意

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

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

setSizeIncrement(size)#
参数:

sizeQSize

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

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

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

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

setSurfaceType(surfaceType)#
参数:

surfaceTypeSurfaceType

设置窗口的 surfaceType

指定窗口是否为使用 QBackingStore 的光栅渲染或使用 QOpenGLContext 的 OpenGL 渲染而设计。

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

另请参阅

surfaceType() QBackingStore QOpenGLContext create() destroy()

setTitle(arg__1)#
参数:

arg__1 - 字符串

另请参阅

title()

属性title 的设置器。

setTransientParent(parent)#
参数:

parentQWindow

另请参阅

transientParent()

setVisibility(v)#
参数:

v - Visibility

另请参阅

visibility()

属性visibility 的设置器。

setVisible(visible)#
参数:

visible - 布尔值

另请参阅

isVisible()

属性visible 的设置器。

setWidth(arg)#
参数:

arg – int

另请参阅

width()

属性width 的设置器。

setWindowState(state)#
参数:

state - WindowState

设置窗口的屏幕占用状态。

窗口状态 state 表示窗口是否以最大化、最小化、全屏或正常方式出现在窗口系统中。

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

setWindowStates(states)#
参数:

状态WindowState 的组合

设置窗口的屏幕占用状态。

窗口状态表示窗口是否以最大化、最小化和/或全屏的形式出现在窗口系统中。

窗口可以处于多个状态组合中。例如,如果窗口既被最小化又被最大化,窗口将显示为已最小化,但点击任务栏条目将将其恢复为最大化状态。

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

setX(arg)#
参数:

arg – int

另请参阅

x()

属性 xᅟ 的设置器。

setY(arg)#
参数:

arg – int

另请参阅

y()

属性 yᅟ 的设置器。

show()#

显示窗口。

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

showEvent(arg__1)#
参数:

arg__1QShowEvent

重写此方法以处理显示事件(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()#
返回类型:

QSize

返回窗口的大小增量。

另请参阅

setSizeIncrement()

startSystemMove()#
返回类型:

bool

启动一个特定于系统的移动操作

调用此方法将在支持该功能的平台上启动一个窗口的交互式移动操作。实际行为可能因平台而异。通常情况下,它会使窗口跟随鼠标指针移动,直到鼠标按钮释放。

在支持该功能的平台上,此方法在移动窗口时比 setPosition 优先,因为它允许具有更原生外观的窗口移动,例如允许窗口管理器将此窗口与其他窗口紧密贴合,或者当拖动到屏幕边缘时具有特殊平铺或调整大小行为(带有动画)。此外,在某些平台(如Wayland)上,setPosition 不受支持,因此这是应用程序唯一能影响其位置的方式。

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

startSystemResize(edges)#
参数:

edgesEdge 的组合

返回类型:

bool

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

调用此方法将在支持该功能的平台上启动一个窗口的交互式大小调整操作。实际行为可能因平台而异。通常情况下,它会使窗口的大小调整,使其边缘跟随鼠标指针。

在支持该功能的平台上,此方法在调整窗口大小时比 setGeometry 优先,因为它允许具有更原生外观和感觉的窗口调整大小,例如允许窗口管理器将此窗口与其他窗口紧密贴合,或者当拖动到屏幕边缘时具有特殊的大小调整行为(带有动画)。

edges 必须是单个边缘或两个相邻边缘(一个角落)。其他值不允许。

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

tabletEvent(arg__1)#
参数:

arg__1QTabletEvent

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

接近进入和离开事件不会发送到窗口,而是发送到应用程序实例。

title()#
返回类型:

str

另请参阅

setTitle()

属性 titleᅟ 的获取器。

touchEvent(arg__1)#
参数:

arg__1QTouchEvent

重写此代码以处理触摸事件(ev)。

transientParent()#
返回类型:

QWindow

另请参阅

setTransientParent()

transientParentChanged(transientParent)#
参数:

transientParentQWindow

type()#
返回类型:

窗口类型

返回窗口的类型。

此函数返回窗口标志部分,表示窗口是否为对话框、提示、弹出窗口、常规窗口等。

另请参阅

flags() setFlags()

unsetCursor()#

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

visibility()#
返回类型:

可见性

另请参阅

setVisibility()

属性 visibility 的获取器。

visibilityChanged(visibility)#
参数:

visibilityVisibility

属性 visibility 的通知信号。

visibleChanged(arg)#
参数:

arg – bool

属性 visible 的通知信号。

wheelEvent(arg__1)#
参数:

arg__1QWheelEvent

覆盖此方法来处理鼠标滚轮或其他滚轮事件(ev)。

width()#
返回类型:

int

另请参阅

setWidth()

属性 width 的获取器。

widthChanged(arg)#
参数:

arg – int

属性 width 的通知信号。

winId()#
返回类型:

WId

返回窗口的平台 ID。

注意

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

对于此类ID可能有用的平台,返回的值将唯一表示对应屏幕内的窗口。

另请参阅

screen()

windowState()#
返回类型:

WindowState

窗口占据屏幕的状态

windowStateChanged(windowState)#
参数:

windowStateWindowState

当窗口状态发生变化时,会发出此信号,无论是通过使用setWindowStates() 明确设置,还是当用户点击标题栏上的按钮或其他方式自动更改时。

windowStates()#
返回类型:

WindowState 的组合

窗口占据屏幕的状态

窗口可以处于多个状态组合中。例如,如果窗口既被最小化又被最大化,窗口将显示为已最小化,但点击任务栏条目将将其恢复为最大化状态。

另请参阅

setWindowStates()

windowTitleChanged(title)#
参数:

title – 字符串

title 属性的通知信号。

x()#
返回类型:

int

另请参阅

setX()

x 属性的获取器。

xChanged(arg)#
参数:

arg – int

x 属性的通知信号。

y()#
返回类型:

int

另请参阅

setY()

y 属性的获取器。

yChanged(arg)#
参数:

arg – int

y 属性的通知信号。