Seite 1 von 1

Zeichnen mit wx

Verfasst: Sonntag 2. Dezember 2007, 17:04
von Mawilo
Ich spiele gerade wieder etwas mit wxPython und möchte verschiedene Objekte zeichnen.
Dazu habe ich folgendes kleines Beispiel:

Code: Alles auswählen

#!/usr/bin/python

import wx

class MainFrame(wx.Frame):
    def __init__(self, parent, id, title):
	wx.Frame.__init__(self, parent, id, title)
	workpanel = wx.Panel(self)
	dc = wx.BufferedPaintDC(workpanel)
	dc.SetPen(wx.Pen('black'))
	dc.DrawCircle(50, 250, 50)
	
	
if __name__ == '__main__':
    app = wx.PySimpleApp()
    frm = MainFrame(None, -1, 'Hauptfenster')
    frm.Show()
    app.MainLoop()
Nur leider funktioniert es nicht. Ich bekomme nur ein leeres Fenster.
:oops:

Was fehlt da noch bzw., was ist da falsch?

Mawilo

Verfasst: Sonntag 2. Dezember 2007, 17:10
von gerold
Hallo mawilo!

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import wx

class MainFrame(wx.Frame):
    
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)
        workpanel = wx.Panel(self)
        self.workpanel = workpanel
        workpanel.Bind(wx.EVT_PAINT, self.on_panel_paint)
    
    
    def on_panel_paint(self, event = None):
        dc = wx.PaintDC(self.workpanel)
        dc.SetPen(wx.Pen('black'))
        dc.DrawCircle(50, 50, 50)
   
   
if __name__ == '__main__':
    app = wx.PySimpleApp()
    frm = MainFrame(None, -1, 'Hauptfenster')
    frm.Show()
    app.MainLoop()
mfg
Gerold
:-)

PS: wx.EVT_PAINT wird immer dann aufgerufen, wenn das Bild neu gezeichnet werden muss.

Verfasst: Sonntag 2. Dezember 2007, 17:18
von Mawilo
Danke :D

Mawilo