PyQt(Python+Qt)學習隨筆:containers容器類部件QStackedWidget堆疊窗口屬性

一、堆疊窗口簡介

StackedWidget堆疊窗口部件爲一系列窗口部件的堆疊,對應類爲QStackedWidget。QStackedWidget類對應部件爲放在堆棧中的多個窗口部件,這些放在堆棧中的窗口部件在界面上只能看到一個窗口。

如果不好理解的話,老猿覺得用QTabWidget選項窗部件做個對比就好理解了。

我們知道,QTabWidget選項窗部件是多個頁面窗口組成的,每次用戶選擇其中一個選項卡時即顯示對應的選項窗,未選中的選項窗不顯示,但用戶可以在選項卡欄上看到對應選項窗的選項標籤。而QStackedWidget的堆疊窗口,在外觀上可以看成一個隱藏了選項卡欄的QTabWidget選項窗部件,當前頁面展示出來,其他頁面被隱藏。

由於沒有選項卡欄,StackedWidget堆疊窗口部件當前顯示的頁面只能通過代碼進行頁面切換,例如通過QComboBox或QListWidget存儲對應頁面的標題供人選擇,然後根據選擇結果將對應頁面設置爲當前頁面。

二、屬性

2.1、概述

在Designer中StackedWidget堆疊窗口部件非常簡單,只有2個,如下:
在這裏插入圖片描述
除了這2個屬性外,還有個未在Designer中設置的動態屬性count。

2.2、currentIndex屬性

currentIndex屬性保存堆疊窗口部件的當前窗口的索引。如果沒有當前窗口,則當前索引爲-1。默認情況下,此屬性值爲-1,因爲堆最初爲空。在Designer中,部件設計拖拽到頁面時,會初始化2個頁面,此時currentIndex初始值爲0。

可以通過currentIndex()和setCurrentIndex(int index)方法訪問該屬性,噹噹前頁切換時,會發射currentChanged(int index)信號,參數爲新的當前頁索引。

2.3、currentPageName屬性

StackedWidget堆疊窗口部件的currentPageName屬性,在對應類QStackedWidget中並沒有該同名屬性,實際上該屬性是StackedWidget中當前頁面窗口對應部件的名字,通過部件的objectName屬性訪問。
相關訪問示例代碼如下:

		self.page_10 = QtWidgets.QWidget()
        self.page_10.setObjectName("page_10")
        self.stackedWidget.addWidget(self.page_10)

2.4、count屬性

count屬性保存了堆疊窗口部件中的窗口數量,可以使用count()訪問。

老猿Python,跟老猿學Python!

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