- 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#
该属性表示在标签视图模式下用户是否可以在标签栏区域移动标签。
默认情况下标签是不可以移动的。
另请参阅
movable
setViewMode()
- 属性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 –
QWidget
flags –
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 –
AreaOption
on – 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
的获取器。