当前位置: 首页 PyQt5高级控件 - 容器控件 QStackedWidget堆栈窗口控件
add-vip

QStackedWidget堆栈窗口控件

一、学习指导

QStackedWidget堆栈窗口控件的使用也比较简单,通过QStackedWidget堆栈窗口控件类创建一个容器之后,把我们想要的控件或者布局进行添加,类似于之前所学过的内容的组合用法,理清顺序和关系就可以了。

二、代码演示


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_())






相关文章