Files
Projects/toolbox/codes/ui/components/stacked_widget_ui.py
2025-10-10 17:16:08 +08:00

42 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from PySide6.QtWidgets import QStackedWidget
from codes.common.signal_bus import signal_bus
from codes.ui.stacked_pages.w01_setting import W01Setting
from codes.ui.stacked_pages.w08_log import W08Log
from codes.ui.stacked_pages.w09_about import W09About
from codes.ui.stacked_pages.w10_practical import W10Practical
from codes.ui.stacked_pages.w20_efficiency import W20Efficiency
from codes.ui.stacked_pages.w30_financial import W30Financial
class SStackedWidget(QStackedWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.predos()
self.init_ui()
self.setup_slot()
def predos(self):
self.page_list = {"w01_setting": W01Setting(), "w08_log": W08Log(), "w09_about": W09About(), "w10_practical": W10Practical(), "w20_efficiency": W20Efficiency(), "w30_financial": W30Financial()}
def init_ui(self):
self.setObjectName("SStackedWidget")
# stacked widget 1x: 10为一级按钮页其余为二级按钮页2-9同理 | 0x. 日志/设置/关于等页面
for page_id, widget in self.page_list.items():
widget.setObjectName(page_id)
self.addWidget(widget)
w = self.page_list.get("w01_setting")
self.setCurrentWidget(w)
def setup_slot(self):
signal_bus.init_stacked_page.connect(self.set_current_page)
signal_bus.stacked_page_switch.connect(self.set_current_page)
signal_bus.list_widget_click.connect(self.set_current_page)
def set_current_page(self, page_id: str):
w = self.page_list.get(page_id)
self.setCurrentWidget(w)
signal_bus.current_stacked_page.emit(page_id)