Files
Projects/toolbox/codes/ui/components/list_widget_ui.py
2025-09-28 18:21:48 +08:00

52 lines
1.5 KiB
Python

from PySide6.QtGui import QFocusEvent
from PySide6.QtWidgets import QListWidget, QListWidgetItem
from PySide6.QtCore import Qt
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):
self.setMinimumWidth(150)
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.stacked_page_switch_setting.connect(self.qa_hide)
signal_bus.stacked_page_switch_log.connect(self.qa_hide)
signal_bus.stacked_page_switch_about.connect(self.qa_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 qa_hide(self):
self.hide()
signal_bus.qa_switch_change.emit(False)
def focusOutEvent(self, event: QFocusEvent):
self.clearSelection()
super().focusOutEvent(event)