Przykład 11.3: wx_app (Kod do uruchomienia lokalnie na komputerze)
#!/usr/bin/env python
import wx
class TestApp(wx.App):
def OnInit(self):
frame = wx.Frame(None, -1, "Tytul okna")
frame.Show(True)
panel = wx.Panel(frame, -1)
self.label1 = wx.StaticText(panel, -1, "Etykieta")
button1 = wx.Button(panel, id=wx.ID_ANY,
label="Kliknij", pos=(225, 5), size=(80, 25))
button1.Bind(wx.EVT_BUTTON, self.onButton1Click)
frame.panel = panel
self.SetTopWindow(frame)
return True
def onButton1Click(self, event):
self.label1.SetLabel("Button pressed!")
app = TestApp(0)
app.MainLoop()
Objaśnienie
Kontrolkę przycisku tworzymy wykorzystując klasę wx.Button. W parametrach podajemy między innymi (opcjonalnie) pozycję (pos) i rozmiar (size).
W implementacji obiektu aplikacji pojawiała się metoda onButton1Click, która jest odpowiedzialna za obsługę zdarzenia. Wiążemy tą metodę ze zdarzeniami dotyczącymi przycisku metodą Bind:
button1.Bind(wx.EVT_BUTTON, self.onButton1Click)
Wewnątrz funkcji onButton1Click zaimplementowana została zmiana etykiety label1. Aby ułatwić odwołanie do etykiety, została ona zainicjowana jako własność obiektu (użycie przedrostka self).
Poniżej znajduje się ten sam program, ale zamiast wxPython używa obiektów przeglądarki (DOM). Możesz go uruchomić bezpośrednio tutaj!