实现功能
代码实现
import sysfrom PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QVBoxLayout, QPushButton, QWidget, QLabel, \QDesktopWidgetclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.ini_ui()def ini_ui(self):self.setWindowTitle("多标签页面切换")self.resize(800, 800)# 窗口移动到中心port = QDesktopWidget().availableGeometry().center() # 获取屏幕中心点x, y, w, h = self.frameGeometry().getRect() # 返回窗口坐标点xy和宽和高whself.move(int(port.x() - w / 2), int(port.y() - h / 2))# 创建tab对象self.tab_widget = QTabWidget()self.setCentralWidget(self.tab_widget) # 主要用于设置主窗口的中央部件# 创建连个tab page页面,并且添加到tab中self.page1 = QWidget()self.page2 = QWidget()self.tab_widget.addTab(self.page1, "页面1")self.tab_widget.addTab(self.page2, "页面2")# 给每个page页面添加布局、控件layout1 = QVBoxLayout()label1 = QLabel('页面1显示的内容')btn1 = QPushButton('点我切换到页面2')btn1.clicked.connect(lambda: self.switch_page(1))layout1.addWidget(label1)layout1.addWidget(btn1)self.page1.setLayout(layout1)layout2 = QVBoxLayout()label2 = QLabel('页面2显示的内容')btn2 = QPushButton('点我切换到页面1')btn2.clicked.connect(lambda: self.switch_page(0))layout2.addWidget(label2)layout2.addWidget(btn2)self.page2.setLayout(layout2)def switch_page(self, index):self.tab_widget.setCurrentIndex(index) # QTabWidget 中,setCurrentIndex用于设置当前选中的选项卡索引if __name__ == "__main__":app = QApplication(sys.argv)mainWin = MainWindow()mainWin.show()sys.exit(app.exec())
学习地址:
Python斗罗