class QMdiArea

The QMdiArea widget provides an area in which MDI windows are displayed. More

Inheritance diagram of PySide6.QtWidgets.QMdiArea

Synopsis

Properties

  • activationOrderᅟ - The ordering criteria for subwindow lists

  • backgroundᅟ - The background brush for the workspace

  • documentModeᅟ - Whether the tab bar is set to document mode in tabbed view mode

  • tabPositionᅟ - The position of the tabs in tabbed view mode

  • tabShapeᅟ - The shape of the tabs in tabbed view mode

  • tabsClosableᅟ - Whether the tab bar should place close buttons on each tab in tabbed view mode

  • tabsMovableᅟ - Whether the user can move the tabs within the tabbar area in tabbed view mode

  • viewModeᅟ - The way sub-windows are displayed in the QMdiArea

Methods

Slots

Signals

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

QMdiArea functions, essentially, like a window manager for MDI windows. For instance, it draws the windows it manages on itself and arranges them in a cascading or tile pattern. QMdiArea is commonly used as the center widget in a QMainWindow to create MDI applications, but can also be placed in any layout. The following code adds an area to a main window:

mainWindow = QMainWindow()
mainWindow.setCentralWidget(mdiArea)

Unlike the window managers for top-level windows, all window flags (Qt::WindowFlags) are supported by QMdiArea as long as the flags are supported by the current widget style. If a specific flag is not supported by the style (e.g., the WindowShadeButtonHint), you can still shade the window with showShaded().

Subwindows in QMdiArea are instances of QMdiSubWindow . They are added to an MDI area with addSubWindow() . It is common to pass a QWidget , which is set as the internal widget, to this function, but it is also possible to pass a QMdiSubWindow directly. The class inherits QWidget , and you can use the same API as with a normal top-level window when programming. QMdiSubWindow also has behavior that is specific to MDI windows. See the QMdiSubWindow class description for more details.

A subwindow becomes active when it gets the keyboard focus, or when setFocus() is called. The user activates a window by moving focus in the usual ways. The MDI area emits the subWindowActivated() signal when the active window changes, and the activeSubWindow() function returns the active subwindow.

The convenience function subWindowList() returns a list of all subwindows. This information could be used in a popup menu containing a list of windows, for example.

The subwindows are sorted by the current WindowOrder . This is used for the subWindowList() and for activateNextSubWindow() and activatePreviousSubWindow() . Also, it is used when cascading or tiling the windows with cascadeSubWindows() and tileSubWindows() .

QMdiArea provides two built-in layout strategies for subwindows: cascadeSubWindows() and tileSubWindows() . Both are slots and are easily connected to menu entries.

mdi-cascade1

mdi-tile2

Note

The default scroll bar property for QMdiArea is Qt::ScrollBarAlwaysOff.

See also

QMdiSubWindow

class AreaOption

(inherits enum.Flag) This enum describes options that customize the behavior of the QMdiArea .

Constant

Description

QMdiArea.DontMaximizeSubWindowOnActivation

When the active subwindow is maximized, the default behavior is to maximize the next subwindow that is activated. Set this option if you do not want this behavior.

class WindowOrder

Specifies the criteria to use for ordering the list of child windows returned by subWindowList() . The functions cascadeSubWindows() and tileSubWindows() follow this order when arranging the windows.

Constant

Description

QMdiArea.CreationOrder

The windows are returned in the order of their creation.

QMdiArea.StackingOrder

The windows are returned in the order in which they are stacked, with the top-most window being last in the list.

QMdiArea.ActivationHistoryOrder

The windows are returned in the order in which they were activated.

See also

subWindowList()

class ViewMode

This enum describes the view mode of the area; i.e. how sub-windows will be displayed.

Constant

Description

QMdiArea.SubWindowView

Display sub-windows with window frames (default).

QMdiArea.TabbedView

Display sub-windows with tabs in a tab bar.

See also

setViewMode()

Note

Properties can be used directly when from __feature__ import true_property is used or via accessor functions otherwise.

property activationOrderᅟ: QMdiArea.WindowOrder

This property holds the ordering criteria for subwindow lists.

This property specifies the ordering criteria for the list of subwindows returned by subWindowList() . By default, it is the window creation order.

See also

subWindowList()

Access functions:
property backgroundᅟ: QBrush

This property holds the background brush for the workspace.

This property sets the background brush for the workspace area itself. By default, it is a gray color, but can be any brush (e.g., colors, gradients or pixmaps).

Access functions:
property documentModeᅟ: bool

This property holds whether the tab bar is set to document mode in tabbed view mode..

Document mode is disabled by default.

Access functions:
property tabPositionᅟ: QTabWidget.TabPosition

This property holds the position of the tabs in tabbed view mode..

Possible values for this property are described by the TabPosition enum.

Access functions:
property tabShapeᅟ: QTabWidget.TabShape

This property holds the shape of the tabs in tabbed view mode..

Possible values for this property are Rounded (default) or Triangular .

Access functions:
property tabsClosableᅟ: bool

This property holds whether the tab bar should place close buttons on each tab in tabbed view mode..

Tabs are not closable by default.

Access functions:
property tabsMovableᅟ: bool

This property holds whether the user can move the tabs within the tabbar area in tabbed view mode..

Tabs are not movable by default.

See also

movable setViewMode()

Access functions:
property viewModeᅟ: QMdiArea.ViewMode

This property holds the way sub-windows are displayed in the QMdiArea ..

By default, the SubWindowView is used to display sub-windows.

Access functions:
__init__([parent=None])
Parameters:

parentQWidget

Constructs an empty mdi area. parent is passed to QWidget ‘s constructor.

activateNextSubWindow()

Gives the keyboard focus to another window in the list of child windows. The window activated will be the next one determined by the current activation order .

activatePreviousSubWindow()

Gives the keyboard focus to another window in the list of child windows. The window activated will be the previous one determined by the current activation order .

activationOrder()
Return type:

WindowOrder

Getter of property activationOrderᅟ .

activeSubWindow()
Return type:

QMdiSubWindow

Returns a pointer to the current active subwindow. If no window is currently active, None is returned.

Subwindows are treated as top-level windows with respect to window state, i.e., if a widget outside the MDI area is the active window, no subwindow will be active. Note that if a widget in the window in which the MDI area lives gains focus, the window will be activated.

See also

setActiveSubWindow() WindowState

addSubWindow(widget[, flags=Qt.WindowFlags()])
Parameters:
Return type:

QMdiSubWindow

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

Adds widget as a new subwindow to the MDI area. If windowFlags are non-zero, they will override the flags set on the widget.

The widget can be either a QMdiSubWindow or another QWidget (in which case the MDI area will create a subwindow and set the widget as the internal widget).

Note

Once the subwindow has been added, its parent will be the viewport widget of the QMdiArea .

mdiArea = QMdiArea()
subWindow1 = QMdiSubWindow()
subWindow1.setWidget(internalWidget1)
subWindow1.setAttribute(Qt.WA_DeleteOnClose)
mdiArea.addSubWindow(subWindow1)
subWindow2 =
    mdiArea.addSubWindow(internalWidget2)

When you create your own subwindow, you must set the Qt::WA_DeleteOnClose widget attribute if you want the window to be deleted when closed in the MDI area. If not, the window will be hidden and the MDI area will not activate the next subwindow.

Returns the QMdiSubWindow that is added to the MDI area.

background()
Return type:

QBrush

See also

setBackground()

Getter of property backgroundᅟ .

cascadeSubWindows()

Arranges all the child windows in a cascade pattern.

See also

tileSubWindows()

closeActiveSubWindow()

Closes the active subwindow.

closeAllSubWindows()

Closes all subwindows by sending a QCloseEvent to each window. You may receive subWindowActivated() signals from subwindows before they are closed (if the MDI area activates the subwindow when another is closing).

Subwindows that ignore the close event will remain open.

currentSubWindow()
Return type:

QMdiSubWindow

Returns a pointer to the current subwindow, or None if there is no current subwindow.

This function will return the same as activeSubWindow() if the QApplication containing QMdiArea is active.

documentMode()
Return type:

bool

Getter of property documentModeᅟ .

removeSubWindow(widget)
Parameters:

widgetQWidget

Removes widget from the MDI area. The widget must be either a QMdiSubWindow or a widget that is the internal widget of a subwindow. Note widget is never actually deleted by QMdiArea . If a QMdiSubWindow is passed in, its parent is set to None and it is removed; but if an internal widget is passed in, the child widget is set to None and the QMdiSubWindow is not removed.

See also

addSubWindow()

setActivationOrder(order)
Parameters:

orderWindowOrder

Setter of property activationOrderᅟ .

setActiveSubWindow(window)
Parameters:

windowQMdiSubWindow

Activates the subwindow window. If window is None, any current active window is deactivated.

setBackground(background)
Parameters:

backgroundQBrush

See also

background()

Setter of property backgroundᅟ .

setDocumentMode(enabled)
Parameters:

enabled – bool

See also

documentMode()

Setter of property documentModeᅟ .

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

If on is true, option is enabled on the MDI area; otherwise it is disabled. See AreaOption for the effect of each option.

setTabPosition(position)
Parameters:

positionTabPosition

See also

tabPosition()

Setter of property tabPositionᅟ .

setTabShape(shape)
Parameters:

shapeTabShape

See also

tabShape()

Setter of property tabShapeᅟ .

setTabsClosable(closable)
Parameters:

closable – bool

See also

tabsClosable()

Setter of property tabsClosableᅟ .

setTabsMovable(movable)
Parameters:

movable – bool

See also

tabsMovable()

Setter of property tabsMovableᅟ .

setViewMode(mode)
Parameters:

modeViewMode

See also

viewMode()

Setter of property viewModeᅟ .

subWindowActivated(arg__1)
Parameters:

arg__1QMdiSubWindow

QMdiArea emits this signal after window has been activated. When window is None, QMdiArea has just deactivated its last active window, and there are no active windows on the workspace.

subWindowList([order=QMdiArea.WindowOrder.CreationOrder])
Parameters:

orderWindowOrder

Return type:

.list of QMdiSubWindow

Returns a list of all subwindows in the MDI area. If order is CreationOrder (the default), the windows are sorted in the order in which they were inserted into the workspace. If order is StackingOrder , the windows are listed in their stacking order, with the topmost window as the last item in the list. If order is ActivationHistoryOrder , the windows are listed according to their recent activation history.

See also

WindowOrder

tabPosition()
Return type:

TabPosition

See also

setTabPosition()

Getter of property tabPositionᅟ .

tabShape()
Return type:

TabShape

See also

setTabShape()

Getter of property tabShapeᅟ .

tabsClosable()
Return type:

bool

Getter of property tabsClosableᅟ .

tabsMovable()
Return type:

bool

See also

setTabsMovable()

Getter of property tabsMovableᅟ .

testOption(opton)
Parameters:

optonAreaOption

Return type:

bool

Returns true if option is enabled; otherwise returns false.

tileSubWindows()

Arranges all child windows in a tile pattern.

viewMode()
Return type:

ViewMode

See also

setViewMode()

Getter of property viewModeᅟ .