58 lines
1.7 KiB
Python
58 lines
1.7 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
|
|
from codes.common.qss_reloader import qss_reloader
|
|
|
|
|
|
class SListWidget(QListWidget):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
|
|
self.pre_do()
|
|
self.init_ui()
|
|
self.post_do()
|
|
|
|
def pre_do(self):
|
|
...
|
|
|
|
def init_ui(self):
|
|
self.setObjectName("SListWidget")
|
|
self.setMinimumWidth(150)
|
|
for item in clibs.listW_items:
|
|
_ = QListWidgetItem(item)
|
|
_.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
self.addItem(_)
|
|
|
|
def post_do(self):
|
|
qss_reloader.register(clibs.qss_list_widget, self)
|
|
self.setup_slot()
|
|
|
|
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) |