主窗口下QStackWidget的简单使用
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setGeometry(300, 300, 400, 400)
self.setWindowTitle('StackedWidget 例子')
self.mainFrame = QWidget()
hbox = QHBoxLayout()
vhbox = QVBoxLayout()
self.btn1 = QPushButton('切换1')
self.btn2 = QPushButton('切换2')
self.btn1.clicked.connect(self.btn1_click)
self.btn2.clicked.connect(self.btn2_click)
vhbox.addWidget(self.btn1)
vhbox.addWidget(self.btn2)
self.stack = QStackedWidget()
self.stack.setFrameShape(QFrame.Box)
self.stack.setFrameShadow(QFrame.Raised)
self.page1 = QWidget()
self.page2 = QWidget()
self.stack.addWidget(self.page1)
label1 = QLabel(self.page1)
label1.setText('page1')
label1 = QLabel(self.page2)
label1.setText('page2')
self.stack.addWidget(self.page2)
hbox.addLayout(vhbox)
hbox.addWidget(self.stack)
self.mainFrame.setLayout(hbox)
self.setCentralWidget(self.mainFrame)
def btn1_click(self):
self.stack.setCurrentIndex(1)
def btn2_click(self):
self.stack.setCurrentIndex(0)
if __name__ == "__main__":
app = QApplication(sys.argv)
demo = MainWindow()
demo.show()
sys.exit(app.exec_())