14.2 QStackedWidget堆疊視窗控制元件
阿新 • • 發佈:2022-04-20
一、QStackedWidget堆疊視窗控制元件
1.基本概念
#1.建立列表(橫著的)
#2.建立視窗
#3.建立堆疊視窗,並把2中的視窗新增進去(豎著的)
#4.建立控制元件,並新增到對應的視窗中
#5.佈局列表和堆疊視窗
#6.點選切換頁面
2.程式碼
點選檢視程式碼
from PyQt5.Qt import * import sys class Window(QWidget) : def __init__(self) : super().__init__() self.setWindowTitle("高階控制元件-QStackedWidget堆疊視窗控制元件 - PyQt5中文網") self.resize(600, 500) self.func_list() def func_list(self) : self.func() def func(self) : # 1.建立列表 self.lists = QListWidget() self.lists.insertItem(0, '登陸介面') self.lists.insertItem(1, '註冊介面') self.lists.insertItem(2, '找回密碼') # 2.建立三個視窗 self.win1 = QWidget() self.win2 = QWidget() self.win3 = QWidget() # 3.建立堆疊視窗 self.stack = QStackedWidget() self.stack.addWidget(self.win1) self.stack.addWidget(self.win2) self.stack.addWidget(self.win3) # 4.建立3個視窗內的控制元件 layout = QFormLayout() layout.addRow('賬號:', QLineEdit()) layout.addRow('密碼:', QLineEdit()) layout.addRow(QPushButton('點選登陸')) self.win1.setLayout(layout) layout1 = QFormLayout() layout1.addRow('賬號:', QLineEdit()) layout1.addRow('密碼:', QLineEdit()) layout1.addRow('驗證碼:', QLineEdit()) layout1.addRow(QPushButton('點選註冊')) self.win2.setLayout(layout1) btn = QPushButton('按鈕') layout2 = QFormLayout() layout2.addWidget(btn) self.win3.setLayout(layout2) # 5.佈局介面 box = QHBoxLayout() box.addWidget(self.lists) box.addWidget(self.stack) self.setLayout(box) # 6.增加點選切換介面 self.lists.currentRowChanged.connect(self.display) #槽函式 def display(self, index) : self.stack.setCurrentIndex(index) if __name__ == '__main__' : app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())