41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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):
 | 
						||
        # 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)
 |