# -*- coding: utf-8 -*- # handler.py import os from qtvcp.core import Handler, Info from qtvcp.widgets.widget_base import WidgetBase from PyQt5.QtWidgets import QPushButton print("Plik handler.py został załadowany przez Pythona.") # Pobierz sciezke do naszej konfiguracji PATH = Info().get_config_path() class MyHandler(Handler): """ Główna klasa handlera, która dynamicznie ładuje zakładkę użytkownika. WERSJA DEBUG. """ def __init__(self, *args, **kwargs): """ Metoda __init__ jest wywoływana przy starcie. """ super(MyHandler, self).__init__(*args, **kwargs) print(">>> HANDLER: __init__ został wykonany. Obiekt MyHandler stworzony.") # Tworzymy pin HAL dla naszego własnego przycisku self.my_custom_button_pin = self.hal.newpin("wlasny-przycisk_is-on", "HAL_BIT", "out") print(f">>> HANDLER: Pin HAL '{self.my_custom_button_pin.name}' został stworzony.") def initialized(self): """ Ta metoda jest wywoływana, gdy interfejs jest już załadowany. Tutaj wczytujemy nasz plik UI i wstawiamy go do stackedWidget. """ print(">>> HANDLER: Metoda 'initialized' została wywołana.") # Ścieżka do naszego pliku UI z zawartością zakładki user_tab_ui_file = os.path.join(PATH, 'qtvcp', 'screens', 'qtdragon_hd', 'my_user_tab.ui') print(f">>> HANDLER: Sprawdzam ścieżkę do pliku UI: {user_tab_ui_file}") if not os.path.exists(user_tab_ui_file): print(">>> HANDLER: BŁĄD KRYTYCZNY! Nie znaleziono pliku my_user_tab.ui. Przycisk 'USER' nie zostanie aktywowany.") self.widgets.btn_user.setVisible(False) return print(">>> HANDLER: Plik my_user_tab.ui ZOSTAŁ ZNALEZIONY. Próbuję go załadować.") # Załaduj zawartość z pliku .ui do nowego widżetu self.user_tab_widget = WidgetBase() self.user_tab_widget.load_ui(user_tab_ui_file) print(">>> HANDLER: Plik UI załadowany pomyślnie do widżetu.") # Główne QStackedWidget z oryginalnego UI main_stack = self.widgets.stackedWidget_mainTab user_button = self.widgets.btn_user target_index = user_button.property('index') # Wstawiamy nasz nowy widżet main_stack.insertWidget(target_index, self.user_tab_widget) print(f">>> HANDLER: Widżet wstawiony do stackedWidget_mainTab na indeksie {target_index}.") # Upewnij się, że przycisk USER jest widoczny user_button.setVisible(True) print(">>> HANDLER: Próba ustawienia przycisku 'btn_user' jako WIDOCZNY.") # Znajdź nasz własny przycisk w załadowanym widżecie i połącz jego sygnał my_button = self.user_tab_widget.findChild(QPushButton, 'moj_wlasny_przycisk_1') if my_button: my_button.clicked.connect(self.on_my_custom_button_clicked) print(">>> HANDLER: Znaleziono 'moj_wlasny_przycisk_1' i połączono jego sygnał 'clicked'.") else: print(">>> HANDLER: OSTRZEŻENIE: Nie znaleziono przycisku 'moj_wlasny_przycisk_1' w my_user_tab.ui") def on_my_custom_button_clicked(self): current_state = self.my_custom_button_pin.get() self.my_custom_button_pin.set(not current_state) print(f">>> HANDLER: Kliknięto własny przycisk! Nowy stan pinu HAL: {not current_state}")