45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from PySide6.QtGui import QFocusEvent
 | 
						|
from PySide6.QtWidgets import QListWidget, QListWidgetItem
 | 
						|
from PySide6.QtCore import Qt, QEvent
 | 
						|
 | 
						|
from codes.common import clibs
 | 
						|
from codes.common.signal_bus import signal_bus
 | 
						|
 | 
						|
 | 
						|
class SListWidget(QListWidget):
 | 
						|
    def __init__(self, parent=None):
 | 
						|
        super().__init__(parent)
 | 
						|
 | 
						|
        self.predos()
 | 
						|
        self.init_ui()
 | 
						|
        self.setup_slot()
 | 
						|
 | 
						|
    def predos(self):
 | 
						|
        ...
 | 
						|
 | 
						|
    def init_ui(self):
 | 
						|
        for item in clibs.listW_items:
 | 
						|
            _ = QListWidgetItem(item)
 | 
						|
            _.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
 | 
						|
            self.addItem(_)
 | 
						|
 | 
						|
    def setup_slot(self):
 | 
						|
        self.itemClicked.connect(self.item_clicked)
 | 
						|
        signal_bus.qa_stacked_page_switch.connect(self.hide)
 | 
						|
        signal_bus.list_widget_on_off.connect(self.lw_show_hide)
 | 
						|
 | 
						|
    def item_clicked(self, item):
 | 
						|
        page_id = clibs.listW_items[item.text()]
 | 
						|
        signal_bus.list_widget_click.emit(page_id)
 | 
						|
 | 
						|
    def lw_show_hide(self, enabled: bool):
 | 
						|
        if enabled:
 | 
						|
            self.clearSelection()
 | 
						|
            self.show()
 | 
						|
            signal_bus.init_stacked_page.emit("w10_practical")
 | 
						|
        else:
 | 
						|
            self.hide()
 | 
						|
 | 
						|
    def focusOutEvent(self, event: QFocusEvent):
 | 
						|
        self.clearSelection()
 | 
						|
        super().focusOutEvent(event) |