10.5 QStackedLayout堆疊佈局管理器
阿新 • • 發佈:2022-04-19
一、QStackedLayout堆疊佈局管理器
1.基本概念
- QStackedLayout堆疊佈局管理器學習的內容比較少,在實際開發中主要用於介面的切換,這裡主要了解其堆疊規則:介面切換方法,展示模式等功能的使用。
2.程式碼
點選檢視程式碼
from PyQt5.Qt import * import sys class Window(QWidget) : def __init__(self) : super().__init__() self.setWindowTitle("佈局管理器-堆疊佈局QStackedLayout - PyQt5中文網") self.resize(600, 500) self.func_list() def func_list(self) : self.func() def func(self) : # 1.建立 ---頁面切換 就是堆疊佈局 # sl = QStackedLayout() # self.setLayout(sl) # 這裡作為第二步不能改變,否則會不穩定 sl = QStackedLayout(self) # 可以直接取代上面兩步 label1 = QLabel('標籤1', self) label1.setStyleSheet('background-color:green') label2 = QLabel('標籤2', self) label2.setStyleSheet('background-color:red') label3 = QLabel('標籤3', self) label3.setStyleSheet('background-color:yellow') label4 = QLabel('標籤4', self) label4.setStyleSheet('background-color:green') sl.addWidget(label1) sl.addWidget(label2) sl.addWidget(label3) # 2.根據索引位置插入和獲取 # print(sl.insertWidget(0, label4)) # 依然展示label1,但是索引值變成1 print(sl.widget(0).text()) # 3.介面切換方法 # sl.setCurrentIndex(2) # 直接設定索引顯示 # sl.setCurrentWidget(label2) # 直接調出控制元件顯示 # timer = QTimer(self) # timer.timeout.connect(lambda :sl.setCurrentIndex((sl.currentIndex() + 1) % sl.count())) # timer.start(200) ''' # 4.展示模式 # QStackedLayout.StackAll # QStackedLayout.StackOne # 只顯示當前控制元件hide()後就沒有控制元件顯示了 ''' sl.setStackingMode(QStackedLayout.StackAll) # 所有都可見之後,把標籤1縮小就能見到後面的控制元件了 label1.setFixedSize(200, 200) label2.setFixedSize(300, 300) ''' # 訊號 # sl.currentChanged() # sl.widgetRemoved() # 控制元件被移除 ''' # sl.removeWidget(label3) # 控制元件被移除後後面的控制元件會自動顯示 if __name__ == '__main__' : app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())