79 lines
3.4 KiB
Python
79 lines
3.4 KiB
Python
# -*- 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}")
|