QStackedWidget堆栈窗口控件
QStackedWidget堆栈窗口控件
QStackedWidget堆栈窗口控件
################################ # PyQt5中文网 - PyQt5全套视频教程 # # https://www.PyQt5.cn/ # # 主讲: 村长 # ################################ 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): # 创建列表 self.lists = QListWidget() self.lists.insertItem(0, '登陆界面') self.lists.insertItem(1, '注册界面') self.lists.insertItem(2, '找回密码') # 创建三个窗口 self.win1 = QWidget() self.win2 = QWidget() self.win3 = QWidget() # 创建堆栈窗口 self.stack = QStackedWidget() self.stack.addWidget(self.win1) self.stack.addWidget(self.win2) self.stack.addWidget(self.win3) # 创建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) # 布局界面 box = QHBoxLayout() box.addWidget(self.lists) box.addWidget(self.stack) self.setLayout(box) # 增加点击切换界面 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_())