⬅ Wróć do spisu treści

Zdarzenia

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).


Wersja przeglądarkowa (Brython DOM)

Poniżej znajduje się ten sam program, ale zamiast wxPython używa obiektów przeglądarki (DOM). Możesz go uruchomić bezpośrednio tutaj!


Tu pojawi się wygenerowany interfejs...