import sys
from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QHBoxLayout, QVBoxLayout,QPushButton, QStackedWidget, QLabel
)
from PySide6.QtCore import Qt# pages
class HomePage(QWidget):def __init__(self):super().__init__()self.setLayout(QVBoxLayout())self.layout().addWidget(QLabel("🏠 首页内容"))class SettingsPage(QWidget):def __init__(self):super().__init__()self.setLayout(QVBoxLayout())self.layout().addWidget(QLabel("⚙️ 设置页面"))class AboutPage(QWidget):def __init__(self):super().__init__()self.setLayout(QVBoxLayout())self.layout().addWidget(QLabel("ℹ️ 关于我们"))class MainWindow(QMainWindow):def __init__(self):super().__init__()self.initUI()# 页面字典self.page_dicts = {"home": HomePage,"settings": SettingsPage,"about": AboutPage,}self.page_instances = {} # 缓存已创建的页面# 默认显示首页self.switch_page("home")self.btn_click()def initUI(self):self.setWindowTitle("Lazy Loading")self.resize(600, 400)central = QWidget()main_layout = QHBoxLayout(central)self.setCentralWidget(central)# ===== 左侧:按钮菜单 ===== left_widget = QWidget() left_widget.setFixedWidth(120)menu_layout = QVBoxLayout()self.btn_home = QPushButton("首页")self.btn_settings = QPushButton("设置")self.btn_about = QPushButton("关于")menu_layout.addWidget(self.btn_home)menu_layout.addWidget(self.btn_settings)menu_layout.addWidget(self.btn_about)menu_layout.addStretch() # 推按钮到顶部main_layout.addWidget(left_widget)left_widget.setLayout(menu_layout)# ===== 右侧:内容区 =====self.stacked_widget = QStackedWidget()main_layout.addWidget(self.stacked_widget)def btn_click(self):# 绑定点击事件(统一用 lambda 传参)self.btn_home.clicked.connect(lambda: self.switch_page("home"))self.btn_settings.clicked.connect(lambda: self.switch_page("settings"))self.btn_about.clicked.connect(lambda: self.switch_page("about")) def switch_page(self, page_key):if page_key not in self.page_instances: #page_class = self.page_dicts[page_key]page_instance = page_class()self.page_instances[page_key] = page_instanceself.stacked_widget.addWidget(page_instance)# 切换显示self.stacked_widget.setCurrentWidget(self.page_instances[page_key])if __name__ == "__main__":app = QApplication(sys.argv)win = MainWindow()win.show()sys.exit(app.exec())
阿勒泰地区网站建设_网站建设公司_Tailwind CSS_seo优化