PyQt(Python+Qt)學習隨筆:containers容器類部件QMdiArea多文檔界面的QMdiSubWindow子窗口相關屬性和操作方法

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()來關閉子窗口,可以重寫這兩個方法對子窗口關閉進行相關處理。

老猿Python,跟老猿學Python!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章