14.2 QStackedWidget堆棧窗口控件


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

3.效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM