import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
#父级又是QWidget,不清楚什么时候是QWidget什么时候是其它
class demoStackedWidget(QWidget):
def __init__(self):
super(demoStackedWidget, self).__init__()
self.setGeometry(600, 200, 300, 100)
self.setWindowTitle("0505QStackedWidget")
self.leftList = QListWidget()
self.leftList.insertItem(0, "Contect")
self.leftList.insertItem(1, "Personal Information")
self.leftList.insertItem(2, "Education")
self.stack1 = QWidget()
self.stack2 = QWidget()
self.stack3 = QWidget()
self.UIstack1()
self.UIstack2()
self.UIstack3()
self.stack = QStackedWidget(self)
self.stack.addWidget(self.stack1)
self.stack.addWidget(self.stack2)
self.stack.addWidget(self.stack3)
hbox = QHBoxLayout(self)
hbox.addWidget(self.leftList)
hbox.addWidget(self.stack)
self.setLayout(hbox)
self.leftList.currentRowChanged.connect(self.display)
def UIstack1(self):
layout = QFormLayout()
layout.addRow("Name: ", QLineEdit())
layout.addRow("Address: ", QLineEdit())
self.stack1.setLayout(layout)
def UIstack2(self):
layout = QFormLayout()
genderLayout = QHBoxLayout()
#genderLayout.addWidget(QLabel("Gender: "))
genderLayout.addWidget(QRadioButton("Male"))
genderLayout.addWidget(QRadioButton("Female"))
layout.addRow("Gender: ", genderLayout)
layout.addRow("Birthday: ", QLineEdit())
self.stack2.setLayout(layout)
def UIstack3(self):
layout = QHBoxLayout()
layout.addWidget(QLabel("Subject: "))
layout.addWidget(QCheckBox("Physics"))
layout.addWidget(QCheckBox("Advanced Mathematics"))
self.stack3.setLayout(layout)
def display(self, i):
self.stack.setCurrentIndex(i)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = demoStackedWidget()
win.show()
sys.exit(app.exec_())