PySide6.QtWidgets.QMdiArea¶
- class QMdiArea¶
QMdiArea小部件提供了一个显示MDI窗口的区域。更多…概要¶
属性¶
activationOrderᅟ- 子窗口列表的排序标准backgroundᅟ- 工作区的背景画笔documentModeᅟ- 选项卡栏是否在选项卡视图模式下设置为文档模式tabPositionᅟ- 选项卡在选项卡视图模式中的位置tabShapeᅟ- 选项卡视图模式中选项卡的形状tabsClosableᅟ- 选项卡栏是否应在选项卡视图模式下在每个选项卡上放置关闭按钮tabsMovableᅟ- 用户是否可以在标签视图模式下在标签栏区域内移动标签viewModeᅟ- QMdiArea中子窗口的显示方式
方法¶
def
__init__()def
addSubWindow()def
background()def
documentMode()def
setBackground()def
setOption()def
setTabPosition()def
setTabShape()def
setTabsMovable()def
setViewMode()def
subWindowList()def
tabPosition()def
tabShape()def
tabsClosable()def
tabsMovable()def
testOption()def
viewMode()
插槽¶
信号¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QMdiArea的功能本质上类似于 MDI 窗口的窗口管理器。例如,它会在自身绘制所管理的窗口,并以级联或平铺的方式排列它们。QMdiArea通常用作QMainWindow中的中心小部件来创建 MDI 应用程序,但也可以放置在任何布局中。以下代码将一个区域添加到主窗口中:mainWindow = QMainWindow() mainWindow.setCentralWidget(mdiArea)
与顶级窗口的窗口管理器不同,只要当前小部件样式支持窗口标志(Qt::WindowFlags),
QMdiArea就支持所有窗口标志。如果样式不支持特定的标志(例如,WindowShadeButtonHint),你仍然可以使用 showShaded() 来遮罩窗口。QMdiArea中的子窗口是QMdiSubWindow的实例。它们通过addSubWindow()添加到 MDI 区域。通常会将一个QWidget作为内部小部件传递给此函数,但也可以直接传递一个QMdiSubWindow。该类继承自QWidget,在编程时可以使用与普通顶层窗口相同的 API。QMdiSubWindow还具有特定于 MDI 窗口的行为。有关更多详细信息,请参阅QMdiSubWindow类描述。当子窗口获得键盘焦点或调用
setFocus()时,子窗口变为活动状态。用户通过通常的方式移动焦点来激活窗口。当活动窗口发生变化时,MDI区域会发出subWindowActivated()信号,而activeSubWindow()函数返回活动的子窗口。便利函数
subWindowList()返回所有子窗口的列表。例如,此信息可用于包含窗口列表的弹出菜单中。子窗口按照当前的
WindowOrder排序。这用于subWindowList()以及activateNextSubWindow()和activatePreviousSubWindow()。此外,当使用cascadeSubWindows()和tileSubWindows()级联或平铺窗口时也会使用它。QMdiArea为子窗口提供了两种内置的布局策略:cascadeSubWindows()和tileSubWindows()。两者都是槽函数,可以轻松连接到菜单项。

- class AreaOption¶
(继承自
enum.Flag) 此枚举描述了自定义QMdiArea行为的选项。常量
描述
QMdiArea.DontMaximizeSubWindowOnActivation
当活动子窗口最大化时,默认行为是最大化下一个被激活的子窗口。如果您不希望这种行为,请设置此选项。
- class WindowOrder¶
指定用于排序由
subWindowList()返回的子窗口列表的标准。函数cascadeSubWindows()和tileSubWindows()在排列窗口时遵循此顺序。常量
描述
QMdiArea.CreationOrder
窗口按照它们的创建顺序返回。
QMdiArea.StackingOrder
窗口按照它们堆叠的顺序返回,最顶部的窗口在列表的最后。
QMdiArea.ActivationHistoryOrder
窗口按照它们被激活的顺序返回。
另请参阅
- class ViewMode¶
此枚举描述了区域的视图模式;即子窗口将如何显示。
常量
描述
QMdiArea.SubWindowView
显示带有窗口框架的子窗口(默认)。
QMdiArea.TabbedView
在标签栏中显示带有标签的子窗口。
另请参阅
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property activationOrderᅟ: QMdiArea.WindowOrder¶
此属性保存子窗口列表的排序标准。
此属性指定由
subWindowList()返回的子窗口列表的排序标准。默认情况下,它是窗口创建顺序。另请参阅
- Access functions:
此属性保存工作区的背景画刷。
此属性设置工作区本身的背景画刷。默认情况下,它是灰色,但可以是任何画刷(例如,颜色、渐变或位图)。
- Access functions:
- property documentModeᅟ: bool¶
此属性表示在标签视图模式下,标签栏是否设置为文档模式。
默认情况下,文档模式是禁用的。
- Access functions:
- property tabPositionᅟ: QTabWidget.TabPosition¶
此属性保存选项卡视图模式中选项卡的位置。
此属性的可能值由
TabPosition枚举描述。另请参阅
- Access functions:
- property tabShapeᅟ: QTabWidget.TabShape¶
此属性保存选项卡视图模式下选项卡的形状。
此属性的可能值为
Rounded(默认)或Triangular。另请参阅
- Access functions:
- property tabsClosableᅟ: bool¶
此属性决定在标签视图模式下,标签栏是否应在每个标签上放置关闭按钮。
默认情况下,标签页是不可关闭的。
- Access functions:
- property tabsMovableᅟ: bool¶
此属性用于确定用户是否可以在标签视图模式下在标签栏区域内移动标签。
默认情况下,选项卡是不可移动的。
另请参阅
movablesetViewMode()- Access functions:
- property viewModeᅟ: QMdiArea.ViewMode¶
此属性决定了子窗口在
QMdiArea中的显示方式。默认情况下,
SubWindowView用于显示子窗口。- Access functions:
构造一个空的MDI区域。
parent被传递给QWidget的构造函数。- activateNextSubWindow()¶
将键盘焦点给予子窗口列表中的另一个窗口。激活的窗口将由当前的
activation order决定。- activatePreviousSubWindow()¶
将键盘焦点给予子窗口列表中的另一个窗口。激活的窗口将是根据当前
activation order确定的先前窗口。- activationOrder()¶
- Return type:
另请参阅
属性
activationOrderᅟ的获取器。- activeSubWindow()¶
- Return type:
返回指向当前活动子窗口的指针。如果没有窗口当前处于活动状态,则返回
None。子窗口在窗口状态方面被视为顶级窗口,即如果MDI区域外的小部件是活动窗口,则没有子窗口会处于活动状态。请注意,如果MDI区域所在的窗口中的小部件获得焦点,则该窗口将被激活。
另请参阅
setActiveSubWindow()WindowState- addSubWindow(widget[, flags=Qt.WindowFlags()])¶
- Parameters:
widget –
QWidgetflags –
WindowType的组合
- Return type:
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将
widget作为新的子窗口添加到MDI区域。如果windowFlags不为零,它们将覆盖在widget上设置的标志。widget可以是QMdiSubWindow或另一个QWidget(在这种情况下,MDI 区域将创建一个子窗口并将widget设置为内部小部件)。注意
一旦子窗口被添加,它的父窗口将是
QMdiArea的视口部件。mdiArea = QMdiArea() subWindow1 = QMdiSubWindow() subWindow1.setWidget(internalWidget1) subWindow1.setAttribute(Qt.WA_DeleteOnClose) mdiArea.addSubWindow(subWindow1) subWindow2 = mdiArea.addSubWindow(internalWidget2)
当您创建自己的子窗口时,如果您希望在MDI区域中关闭窗口时删除窗口,则必须设置Qt::WA_DeleteOnClose小部件属性。如果不这样做,窗口将被隐藏,并且MDI区域不会激活下一个子窗口。
返回添加到MDI区域的
QMdiSubWindow。另请参阅
- background()¶
- Return type:
另请参阅
属性
backgroundᅟ的获取器。- cascadeSubWindows()¶
将所有子窗口以层叠模式排列。
另请参阅
- closeActiveSubWindow()¶
关闭活动的子窗口。
另请参阅
- closeAllSubWindows()¶
通过向每个窗口发送QCloseEvent来关闭所有子窗口。在子窗口关闭之前,您可能会收到来自子窗口的
subWindowActivated()信号(如果MDI区域在另一个窗口关闭时激活了子窗口)。忽略关闭事件的子窗口将保持打开状态。
- currentSubWindow()¶
- Return type:
返回指向当前子窗口的指针,如果没有当前子窗口,则返回
None。如果包含
QMdiArea的QApplication处于活动状态,此函数将返回与activeSubWindow()相同的结果。- documentMode()¶
- Return type:
布尔
另请参阅
属性
documentModeᅟ的获取器。从MDI区域移除
widget。widget必须是一个QMdiSubWindow或者是子窗口的内部部件。注意,widget实际上不会被QMdiArea删除。如果传入的是QMdiSubWindow,其父级被设置为None并被移除;但如果传入的是内部部件,子部件被设置为None,而QMdiSubWindow则不会被移除。另请参阅
- setActivationOrder(order)¶
- Parameters:
排序 –
WindowOrder
另请参阅
属性
activationOrderᅟ的设置器。- setActiveSubWindow(window)¶
- Parameters:
窗口 –
QMdiSubWindow
激活子窗口
window。如果window是None,则任何当前活动的窗口将被停用。另请参阅
属性
backgroundᅟ的设置器。- setDocumentMode(enabled)¶
- Parameters:
enabled – 布尔值
另请参阅
属性
documentModeᅟ的设置器。- setOption(option[, on=true])¶
- Parameters:
option –
AreaOptionon – 布尔值
如果
on为真,则在 MDI 区域启用option;否则禁用。有关每个选项的效果,请参见AreaOption。另请参阅
- setTabPosition(position)¶
- Parameters:
位置 –
TabPosition
另请参阅
属性
tabPositionᅟ的设置器。属性
tabShapeᅟ的设置器。- setTabsClosable(closable)¶
- Parameters:
closable – bool
另请参阅
属性
tabsClosableᅟ的设置器。- setTabsMovable(movable)¶
- Parameters:
movable – 布尔值
另请参阅
属性
tabsMovableᅟ的设置器。属性
viewModeᅟ的设置器。- subWindowActivated(window)¶
- Parameters:
窗口 –
QMdiSubWindow
QMdiArea在window被激活后发出此信号。当window是None时,QMdiArea刚刚停用了其最后一个活动窗口,并且工作区上没有活动窗口。另请参阅
- subWindowList([order=QMdiArea.WindowOrder.CreationOrder])¶
- Parameters:
排序 –
WindowOrder- Return type:
返回MDI区域中所有子窗口的列表。如果
order是CreationOrder(默认值),则窗口按照它们插入工作区的顺序排序。如果order是StackingOrder,则窗口按照它们的堆叠顺序列出,最顶层的窗口作为列表中的最后一项。如果order是ActivationHistoryOrder,则窗口按照它们最近的激活历史列出。另请参阅
- tabPosition()¶
- Return type:
另请参阅
获取属性
tabPositionᅟ的Getter。- tabShape()¶
- Return type:
另请参阅
属性
tabShapeᅟ的获取器。- tabsClosable()¶
- Return type:
布尔
另请参阅
属性
tabsClosableᅟ的获取器。- tabsMovable()¶
- Return type:
布尔
另请参阅
属性
tabsMovableᅟ的获取器。- testOption(opton)¶
- Parameters:
opton –
AreaOption- Return type:
布尔
如果
option已启用,则返回true;否则返回false。另请参阅
- tileSubWindows()¶
将所有子窗口以平铺模式排列。
另请参阅
- viewMode()¶
- Return type:
另请参阅
属性
viewModeᅟ的获取器。