from wxPython.wx import * class MiaDialog(wxDialog): def __init__(self): wxDialog.__init__(self, None, -1, "Prova di disegno", size=(400, 200)) wxInitAllImageHandlers() EVT_PAINT(self, self.OnPaint) # Carica "immagine.bmp" in memoria. self.bmp = wxBitmap("immagine.bmp", wxBITMAP_TYPE_BMP) # Viene creata una maschera per l'immagine appena caricata. mask = wxMaskColour(self.bmp, "magenta") # La maschera viene associata all'immagine. self.bmp.SetMask(mask) def OnPaint(self, event): # Crea il DC e lo prepara per il disegno. dc = wxPaintDC(self) dc.BeginDrawing() # Disegna un rettangolo verde con bordo giallo. penna_gialla_spessa = wxPen("yellow", 5, wxSOLID) dc.SetPen(penna_gialla_spessa) dc.SetBrush(wxGREEN_BRUSH) dc.DrawRectangle(5, 5, 100, 100) # Disegna una linea molto larga. penna_molto_spessa = wxPen(wxColour(180, 27, 93), 18, wxNORMAL) dc.SetPen(penna_molto_spessa) dc.DrawLine(50, 50, 200, 90) # Disegna un'immagine con una maschera trasparente. dc.DrawBitmap(self.bmp, 10, 20, 1) # Disegna un'immagine senza la maschera trasparente. dc.DrawBitmap(self.bmp, 250, 80) # Scrive "Hello world" con un carattere grande, in corsivo # e grassetto, sottolineato (solo su Windows) e di tipo # decorativo. font_grande = wxFont(20, wxDECORATIVE, wxITALIC, wxBOLD, 1) dc.SetFont(font_grande) dc.DrawText("Hello world", 120, 0) # Scrive "Hello world" con un carattere piccolo, con # larghezza fissa, di colore rosso e sfondo nero. font_piccolo = wxFont(10, wxMODERN, wxNORMAL, wxNORMAL) dc.SetBackgroundMode(wxSOLID) dc.SetTextBackground(wxBLACK) dc.SetTextForeground(wxRED) dc.SetFont(font_piccolo) dc.DrawText("Hello world", 10, 120) # Finisce le operazioni di disegno. dc.EndDrawing() class MiaApp(wxApp): def OnInit(self): dlg = MiaDialog() dlg.ShowModal() dlg.Destroy() return 1 app = MiaApp() app.MainLoop()