1、增加子窗口
QMdiArea中的子窗口類型是QMdiSubWindow的實例,但可以使用addSubWindow()方法將任何QWidget或其派生類的實例添加到MDI區域作爲子窗口,此時QMdiArea會自動創建子窗口的QMdiSubWindow實例,並作爲addSubWindow()方法的結果返回。
2、子窗口數量
QMdiArea中的子窗口數量無法直接通過QMdiArea方法獲取,必須先通過方法subWindowList()返回所有子窗口的列表,再通過Python的len函數獲取子窗口的數量。
3、子窗口排序和排列
subWindowList()返回的子窗口列表是排序的,有三種排序方式,通過屬性activationOrder來控制,排序方式由枚舉類型QMdiArea.WindowOrder指定,可通過Designer中就可以設置的屬性activationOrder來指定。當使用cascadeSubWindows()和tileSubWindows()層疊或平鋪方式來排列區域內的窗口時,也會使用該排序。
4、活動子窗口
子窗口在獲得鍵盤焦點或調用setFocus()時變爲活動狀態,用戶通過以通常的方式移動焦點來激活窗口。當活動窗口更改時,MDI區域會發出subWindowActivated()信號,active subwindow()函數會返回活動子窗口,槽方法setActiveSubWindow(QMdiSubWindow window)在切換活動窗口時調用。
5、移除和關閉子窗口
可以通過removeSubWindow(QWidget widget)移除指定子窗口實例,也也可以通過調用槽方法closeAllSubWindows()、closeActiveSubWindow()來關閉子窗口,可以重寫這兩個方法對子窗口關閉進行相關處理。