- 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()定义
testOption()定义
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()函数遵循此顺序。
- class ViewMode#
该枚举描述了区域的视图模式;即子窗口将如何显示。
另请参阅
注意
可以在使用
from __feature__ import true_property时直接使用属性,或者在其他情况下通过访问函数使用。- property activationOrderᅟ: QMdiArea.WindowOrder#
此属性持有子窗口列表的排序标准。
此属性指定由
subWindowList()返回的子窗口列表的排序标准。默认情况下,它是窗口创建顺序。另请参阅
此属性存储工作空间的背景画笔。
此属性设置了工作空间区域的背景画笔。默认情况下,它是灰色,但可以是任何画笔(例如,颜色、渐变或位图)。
- 属性documentMode: bool#
此属性表示是否在选项卡视图中将标签栏设置为文档模式。
默认情况下,文档模式是禁用的。
- 属性tabPosition: QTabWidget.TabPosition#
此属性存储选项卡视图中选项卡的位置。
此属性的值由
TabPosition枚举描述。另请参阅
- 属性tabShape: QTabWidget.TabShape#
此属性存储选项卡视图中选项卡的形状。
此属性的值可以是默认的
Rounded或Triangular。另请参阅
- 访问函数
- 属性tabsClosable: bool#
该属性表示是否在标签视图模式下,标签栏在每个选项卡上放置关闭按钮。
默认情况下标签是不可以关闭的。
- 属性tabsMovable: bool#
该属性表示在标签视图模式下用户是否可以在标签栏区域移动标签。
默认情况下标签是不可以移动的。
另请参阅
movablesetViewMode()- 属性viewMode: QMdiArea.ViewMode#
该属性表示子窗口在
QMdiArea中的显示方式。默认情况下使用
SubWindowView来显示子窗口。- 访问函数
构建一个空的 Mdi 区域。将
parent传递给QWidget构造函数。- activateNextSubWindow()#
将键盘焦点交给子窗口列表中的另一个窗口。被激活的窗口将由当前的
activation order决定。- activatePreviousSubWindow()#
将键盘焦点交给子窗口列表中的另一个窗口。被激活的窗口将通过当前的
activation order确定上一个窗口。- activationOrder()#
- 返回类型:
另请参阅
获取属性
activationOrder的访问器。返回当前活动子窗口的指针。如果没有窗口当前处于活动状态,则返回None。
子窗口被视为顶级窗口,即如果MDI区域外的控件是活动窗口,则没有任何子窗口是活动的。注意,如果MDI区域所在的窗口中的控件获得焦点,窗口将被激活。
另请参阅
setActiveSubWindow()WindowState- addSubWindow(widget[, flags=Qt.WindowFlags()])#
- 参数:
widget –
QWidgetflags –
WindowType组合
- 返回类型:
警告
本节包含从C++自动转换为Python的代码片段,可能存在错误。
将
widget添加为MDI区域的新子窗口。如果windowFlags非零,则它们将覆盖控件上设置的标志。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()#
- 返回类型:
另请参阅
background属性的获取器。- cascadeSubWindows()#
将所有子窗口以层叠方式排列。
另请参阅
- closeActiveSubWindow()#
关闭活动子窗口。
另请参阅
- closeAllSubWindows()#
通过向每个窗口发送QCloseEvent来关闭所有子窗口。在关闭之前,您可能会收到来自子窗口的
subWindowActivated信号(如果MDI区域在关闭另一个窗口时激活了子窗口)。忽略关闭事件的子窗口将保持打开状态。
返回指向当前子窗口的指针,如果没有当前子窗口,则返回None。
如果包含
QMdiArea的应用程序是活动的,此函数的返回值将与activeSubWindow相同。- documentMode()#
- 返回类型:
bool
另请参阅
属性
documentMode的获取器。从MDI区域中移除
widget。widget必须是QMdiSubWindow或者子窗口的内部控件。注意widget从来不会由QMdiArea实际删除。如果传入QMdiSubWindow,则其父级被设置为None并将其移除;但如果传入内部控件,则子控件被设置为None,但QMdiSubWindow不会移除。另请参阅
- setActivationOrder(order)#
- 参数:
order –
WindowOrder
另请参阅
属性
activationOrder的设置器。- setActiveSubWindow(window)#
- 参数:
window –
QMdiSubWindow
激活子窗口
window。如果window是None,则当前任何活动的窗口都会被禁用。另请参阅
属性
background的设置器。- setDocumentMode(enabled)#
- 参数:
enabled – bool
另请参阅
属性
documentMode的设置器。- setOption(option[, on=true])#
- 参数:
option –
AreaOptionon – bool
如果
on为 true,则在 MDI 区域中启用option;否则禁用。请参阅AreaOption了解每个选项的影响。另请参阅
- setTabPosition(position)#
- 参数:
position –
TabPosition
另请参阅
属性
tabPosition的设置器。属性
tabShape的设置器。- setTabsClosable(closable)#
- 参数:
closable – bool
另请参阅
属性
tabsClosable的设置器。- setTabsMovable(movable)#
- 参数:
movable – bool
另请参阅
属性
tabsMovable的设置器。属性
viewMode的设置器。- subWindowActivated(arg__1)#
- 参数:
arg__1 –
QMdiSubWindow
QMdiArea在window被激活后发出这个信号。当window是None时,QMdiArea刚刚停用了其最后一个激活窗口,并且工作区上没有激活的窗口。另请参阅
- subWindowList([order=QMdiArea.WindowOrder.CreationOrder])#
- 参数:
order –
WindowOrder- 返回类型:
. QMdiSubWindow 列表
返回 MDI 区域中所有子窗口的列表。如果
order是CreationOrder(默认),则窗口的排序方式是它们被插入工作区的顺序。如果order是StackingOrder,则窗口将按照其堆叠顺序列出,其中最顶部的窗口为列表中的最后一个元素。如果order是ActivationHistoryOrder,则窗口将根据其最近的激活历史进行列出。另请参阅
- tabPosition()#
- 返回类型:
另请参阅
属性
tabPosition的获取器。- tabShape()#
- 返回类型:
另请参阅
属性
tabShape的获取器。- tabsClosable()#
- 返回类型:
bool
另请参阅
属性
tabsClosable的获取器。- tabsMovable()#
- 返回类型:
bool
另请参阅
属性
tabsMovable的获取器。- testOption(option)#
- 参数:
option –
AreaOption- 返回类型:
bool
如果
option被启用,则返回true;否则返回false。另请参阅
- tileSubWindows()#
将所有子窗口按平铺模式排列。
另请参阅
- viewMode()#
- 返回类型:
另请参阅
属性
viewMode的获取器。