PySide6.QtWidgets.QMdiSubWindow

class QMdiSubWindow

QMdiSubWindow 类为 QMdiArea 提供了一个子窗口类。更多

PySide6.QtWidgets.QMdiSubWindow 的继承图

概要

属性

  • keyboardPageStepᅟ - 设置在使用键盘页面键时,小部件应移动或调整大小的距离

  • keyboardSingleStepᅟ - 设置在使用键盘箭头键时,小部件应移动或调整大小的距离

方法

插槽

信号

注意

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

详细描述

QMdiSubWindow 表示在 QMdiArea 中的一个顶层窗口,它由一个带有窗口装饰的标题栏、一个内部小部件以及(取决于当前样式)一个窗口框架和一个大小调整手柄组成。QMdiSubWindow 有自己的布局,该布局由标题栏和用于内部小部件的中心区域组成。

../../_images/qmdisubwindowlayout.png

构造QMdiSubWindow的最常见方法是使用内部小部件作为参数调用addSubWindow()。你也可以自己创建一个子窗口,并通过调用setWidget()来设置内部小部件。

在使用子窗口编程时,您使用的API与常规顶层窗口相同(例如,您可以调用诸如show()hide()showMaximized()setWindowTitle()等函数)。

子窗口处理

QMdiSubWindow 还支持在MDI区域中子窗口的特定行为。

默认情况下,每个QMdiSubWindow在MDI区域视口中移动时都是可见的,但也可以指定透明的窗口移动和调整大小行为,在这些操作期间只更新子窗口的轮廓。setOption()函数用于启用此行为。

isShaded() 函数检测子窗口当前是否处于阴影状态(即窗口被折叠,只有标题栏可见)。要进入阴影模式,请调用 showShaded()QMdiSubWindow 在窗口状态发生变化时(例如,当窗口最小化或恢复时)会发出 windowStateChanged() 信号。它还会在激活之前发出 aboutToActivate()

在键盘交互模式下,窗口可以通过键盘进行移动和调整大小。您可以通过窗口的系统菜单进入此模式。keyboardSingleStepkeyboardPageStep 属性控制每次按键事件时小部件移动或调整大小的距离。当按下shift键时,使用页面步长;否则使用单步长。

你也可以用键盘来改变活动窗口。同时按下控制和Tab键,下一个(使用当前的WindowOrder)子窗口将被激活。按下控制、Shift和Tab键,你将激活前一个窗口。这相当于调用activateNextSubWindow()activatePreviousSubWindow()。请注意,这些快捷键会覆盖全局快捷键,但不会覆盖QMdiArea的快捷键。

另请参阅

QMdiArea

class SubWindowOption

(继承自 enum.Flag) 此枚举描述了自定义 QMdiSubWindow 行为的选项。

常量

描述

QMdiSubWindow.RubberBandResize

如果启用此选项,将使用橡皮筋控件来表示子窗口的轮廓,用户调整的是这个轮廓而不是子窗口本身的大小。因此,子窗口在调整大小操作完成之前保持其原始位置和大小,此时它将接收一个QResizeEvent。默认情况下,此选项是禁用的。

QMdiSubWindow.RubberBandMove

如果启用此选项,将使用橡皮筋控件来表示子窗口的轮廓,用户移动的是这个轮廓而不是子窗口本身。因此,子窗口在移动操作完成之前保持在其原始位置,此时会向窗口发送一个QMoveEvent。默认情况下,此选项是禁用的。

注意

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

property keyboardPageStepᅟ: int

此属性设置在使用键盘页面键时,小部件应移动或调整大小的距离。

在键盘交互模式下,您可以使用箭头键和页面键来移动或调整窗口大小。此属性控制页面键。进入键盘交互模式的常见方法是进入子窗口菜单,然后选择“调整大小”或“移动”。

默认的键盘页面步长值为20像素。

另请参阅

keyboardSingleStep

Access functions:
property keyboardSingleStepᅟ: int

此属性设置在使用键盘箭头键时,小部件应移动或调整大小的距离。

在键盘交互模式下,您可以使用箭头键和页面键来移动或调整窗口大小。此属性控制箭头键。进入键盘交互模式的常见方法是进入子窗口菜单,然后选择“调整大小”或“移动”。

默认键盘单步值为5像素。

另请参阅

keyboardPageStep

Access functions:
__init__([parent=None[, flags=Qt.WindowFlags()]])
Parameters:

构造一个新的QMdiSubWindow小部件。parentflags参数被传递给QWidget的构造函数。

除了使用addSubWindow(),在将子窗口添加到QMdiArea时,也可以简单地使用setParent()

请注意,只有QMdiSubWindow可以被设置为QMdiArea的子窗口;例如,你不能这样写:

//bad code
QMdiArea mdiArea;
QTextEdit editor(&mdiArea); // invalid child widget

另请参阅

addSubWindow()

aboutToActivate()

QMdiSubWindow 在它被激活之前立即发出这个信号。在子窗口被激活后,管理子窗口的 QMdiArea 也会发出 subWindowActivated() 信号。

另请参阅

subWindowActivated()

isShaded()
Return type:

布尔

如果此窗口被阴影覆盖,则返回true;否则返回false

如果窗口被折叠,只显示标题栏,则该窗口是阴影的。

keyboardPageStep()
Return type:

整数

另请参阅

setKeyboardPageStep()

属性 keyboardPageStepᅟ 的获取器。

keyboardSingleStep()
Return type:

整数

属性 keyboardSingleStepᅟ 的获取器。

maximizedButtonsWidget()
Return type:

QWidget

maximizedSystemMenuIconWidget()
Return type:

QWidget

mdiArea()
Return type:

QMdiArea

返回包含此子窗口的区域,如果没有则返回None

另请参阅

addSubWindow()

setKeyboardPageStep(step)
Parameters:

step – 整数

另请参阅

keyboardPageStep()

属性 keyboardPageStepᅟ 的设置器。

setKeyboardSingleStep(step)
Parameters:

step – 整数

另请参阅

keyboardSingleStep()

属性 keyboardSingleStepᅟ 的设置器。

setOption(option[, on=true])
Parameters:

如果 on 为真,option 将在子窗口上启用;否则将被禁用。有关每个选项的效果,请参见 SubWindowOption

setSystemMenu(systemMenu)
Parameters:

systemMenuQMenu

systemMenu设置为当前子窗口的系统菜单。

默认情况下,每个QMdiSubWindow都有一个标准的系统菜单。

QMdiSubWindow创建的系统菜单的QActions将根据当前窗口状态自动更新;例如,窗口最小化后,最小化操作将被禁用。

用户添加的QActions不会被QMdiSubWindow更新。

QMdiSubWindow 拥有 systemMenu 的所有权;你不需要删除它。任何现有的菜单将被删除。

setWidget(widget)
Parameters:

widgetQWidget

widget设置为此子窗口的内部小部件。内部小部件显示在子窗口标题栏下方的中心位置。

QMdiSubWindow 临时拥有 widget;您不需要删除它。任何现有的内部小部件将被移除并重新设置为根窗口。

另请参阅

widget()

showShaded()

调用此函数将使子窗口进入阴影模式。当子窗口被阴影化时,只有标题栏可见。

尽管并非所有样式都支持阴影效果,此函数仍会将子窗口显示为阴影状态,无论是否支持阴影效果。然而,当与不支持阴影效果的样式一起使用时,用户将无法通过用户界面(例如,通过标题栏中的阴影按钮)从阴影模式返回。

另请参阅

isShaded()

showSystemMenu()

在标题栏中的系统菜单图标下方显示系统菜单。

systemMenu()
Return type:

QMenu

返回指向当前系统菜单的指针,如果未设置系统菜单,则返回零。QMdiSubWindow 提供了一个默认的系统菜单,但你也可以使用 setSystemMenu() 来设置菜单。

testOption(option)
Parameters:

选项SubWindowOption

Return type:

布尔

如果 option 已启用,则返回 true;否则返回 false

widget()
Return type:

QWidget

返回当前内部小部件。

另请参阅

setWidget()

windowStateChanged(oldState, newState)
Parameters:

QMdiSubWindow 在窗口状态改变后发出此信号。oldState 是改变前的窗口状态,newState 是新的当前状态。