Spisie treści
Jak widzieliśmy w pierwszej części samouczka, tworzenie okna jest dość proste, w drugiej części przejdziemy nieco dalej, zagłębiając się w to, co pozostawiliśmy jako bazę i rozszerzając kod, aby stworzyć coś z wyższy stopień złożoności .Dodaj przycisk
Po wyjściu z okna musi być w nim więcej elementów i jednym z podstawowych, ale bardzo ważnym jest przycisk, aby go dodać dodamy btn = wx.Przycisk (wygraj) w naszym kodzie zobaczmy:
import wx app = wx.App () win = wx.Frame (Brak) btn = wx.Button (win) win.Show () app.MainLoop ()
Jak widać jest to praktycznie ten sam kod co powyżej, jednak dołączamy instrukcję dodującą przycisk, na obrazku widzimy wynik:
Etykiety i pozycje
W poprzednim rozdziale zdaliśmy sobie sprawę, że choć bardzo łatwo jest dodawać kolejne elementy, to musimy mieć możliwość ich rozmieszczenia tak, aby na poziomie graficznym było spójne z tym, co chcemy osiągnąć, do tego możemy ustalić etykiety, rozmiary i pozycje dla elementów w oknie.
Zobaczymy poniższy kod z odpowiadającym mu wynikiem, abyśmy mogli lepiej przeanalizować i zrozumieć proces.
import wx app = wx.App() win = wx.Frame (Brak,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ( ) app.Pętla główna ()
Jak widać umieszczamy wartość w tytule okna, jako argument dla konstruktora podczas tworzenia instancji, następnie tworzymy dwa przyciski i do każdego dodajemy etykietę lub etykietę, możemy zobaczyć wynik, chociaż może nie bądź tym, czego oczekujemy:
Poprawimy to za pomocą następującego kodu:
import wx app = wx.App() win = wx.Frame (Brak ,, size = (410, 335)) win.Show() loadButton = wx.Button (win, label = 'Open', pos = (225, 5), size = (80, 25)) saveButton = wx.Button (win, label = 'Save', poz = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, poz = (5, 5), size = (210, 25)) content = wx.TextCtrl (win, poz = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) app .Główna pętla ()
Za pomocą tego kodu, oprócz poprawiania szczegółów z pozycjami przycisków, wykorzystujemy i dodajemy kilka kontrolek tekstowych, zobaczmy na poniższym obrazku, jak by to wszystko wyglądało.
Obsługa zdarzeń
Stosując tego typu podejście do tworzenia naszych programów, wizja tego, co robimy, również nieco się zmienia, w tym przypadku i akcje, które wykonuje program, będziemy nazywać zdarzeniami, zdarzenia te są wyzwalane przez akcje użytkownika, takie jak kliknięcie przycisku, więc zmodyfikowaliśmy nieco kod, aby uwzględnić te zdarzenia:
loadButton.Bind (wx.EVT_BUTTON, wczytaj)
Ta linia tworzy nam unię między funkcją ładowania a elementem, w tym przypadku przyciskiem, więc już wiemy, że musimy najpierw zdefiniować funkcję, a następnie przypisać ją w zdarzeniu powiązanym z elementem.
Zobaczmy ostateczny kod:
import wx def load (event): file = open (nazwapliku.GetValue()) content.SetValue (file.read()) file.close() def save (event): file = open (nazwapliku.GetValue()), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (Brak ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, zapisz) filename = wx.TextCtrl (bkg) content = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (nazwa pliku, proporcja = 1, flaga = wx.ROZWIŃ) hbox.Add (loadButton, proporcjonalna = 0, flaga = wx.LEFT, border = 5) hbox.Add (saveButton, proporcjonalna = 0, flaga = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporcja = 0, flaga = wx.ROZSZERZ | wx.WSZYSTKO, obramowanie = 5) vbox.Add (zawartość, proporcja = 1, flaga = wx.ROZSZERZ | wx.LEWO | wx.DÓŁ | wx.PRAWO, obramowanie = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop ()
Program ten w dość prosty sposób edytuje pliki tekstowe, jednak zmusił nas do korzystania z wielu funkcji i aplikacji.
Na tym kończymy samouczek, wiedząc, jak używać a zestaw narzędzi interfejs użytkownika, zachęcamy do zbadania różnych istniejących zestawów narzędzi, w tym tych, które są przeznaczone wyłącznie dla konkretnego systemu operacyjnego, pamiętając, że każde narzędzie będzie dla nas czasami przydatne.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt