Zajęcia Python III nr 9 i 10 - notatki
GUI:
GUI - Graphic User Interface
To po prostu graficzny interfejs programów. W obecnych czasach są one obecne wszędzie, ale interfejs terminalowy/tekstowy dalej ma zastosowanie dla ludzi znających kod.
Interfejsy graficzne są lepsze dla szarego użytkownika który nie zna poleceń.
Biblioteka GUI to inaczej framework - zawiera wszystkie potrzebne komponenty do stworzenia działającego interfejsu.
Z Pythonem pracują np.:
- Tkinter [już mocno przestarzały]
- Qt (PySide, PyQt)
- GTK (PyGObject) [zrobiono z nią np. Inkscape i GIMP]
- Kivy [często do aplikacji mobilnych]
- DearPyGui [używany czesto przy aplikacjach naukowych]
- Flet [pozwala na korzystanie z frameworku Flutter, bo sam Flutter jest napisany w języku Dart]
My będziemy korzystać z Flet(u) (Flutter).
Podstawowa struktura Flet
Flet ma bardzo jasną dokumentację:

Zamiast używania przycisku play do włączania Flet...
Lepiej w terminalu wpisywać:
flet run [nazwa pliku].pyOgólne parametry okna, przykładowo:
page.title = "Program QR"
page.vertical_alignment = flet.MainAxisAlignment.START
page.horizontal_alignment = flet.CrossAxisAlignment.CENTEROdpowiednio to tytuł okna, ułożenie pionowe i poziome.
FUNKCJE - CZASOWNIKI
Poprzednio używaliśmy tylko funkcji dostepnych z bazowym Pythonem oraz tych z bibliotek.
Dzięki def, naszemu własnemu czasownikowi, możemy konstruować własne funkcje - ale dobrze jest pamiętać o dwóch zasadach.
Savoir-vivre kodowania:

KLASY OBIEKTÓW
Można tworzyć własne typy poprzez stworzenie jakiejś klasy obiektów.
NIE MOŻEMY MYLIĆ KLASY Z OBIEKTEM.
Klasa jest czymś w rodzaju szablonu, konkretnym przepisem na typ obiektu.
Dzięki tworzeniu własnych klas możemy łatwiej eliminować powtórzenia w kodzie.
Do deklarowania klasy służy class.
Aby przypisywać obiektom w klasie indywidualne cechy, musimy użyć funkcji def __init__(self). Sekcja init aktywuje indywidualne cechy danego obiektu.
Możemy sami definiować własne metody w takich klasach.
Dziedziczenie - gdy chcemy stworzyć nową klasę,. która przejmie wartości innej klasy "rodzica". potrzebujemy wtedy użyć tzw "super init"

Do tworzenia nowych klas przez użytkownika można użyć ABC (abstract class).
Tutaj do stworzenia profesji w grze: