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)