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_())
3.效果
