testy custom qtdragon zakladka, brak powodzenia
This commit is contained in:
78
qtvcp/screens/qtdragon_hd/handler.py
Normal file
78
qtvcp/screens/qtdragon_hd/handler.py
Normal file
@@ -0,0 +1,78 @@
|
||||
# -*- 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}")
|
||||
47
qtvcp/screens/qtdragon_hd/my_user_tab.ui
Normal file
47
qtvcp/screens/qtdragon_hd/my_user_tab.ui
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UserTabWidget</class>
|
||||
<widget class="QWidget" name="UserTabWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="moj_wlasny_przycisk_1">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Mój Własny Przycisk Testowy</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
18065
qtvcp/screens/qtdragon_hd/qtdragon_hd.ui
Normal file
18065
qtvcp/screens/qtdragon_hd/qtdragon_hd.ui
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user