Rechteck Zeichnen
Verfasst: Montag 19. Januar 2009, 02:17
Grüßt euch,
Habe folgendes problem, möchte mit dem button mit der id=13 rechtecke zeichnen, wenn ich jetzt auf den button klicke geschiet nichts, sobald ich das fenster minimiere und wieder maximiere erscheint erst das rechteck,
warum erscheint das rechteck nicht sobald ich drauf klicke??Wo mache ich ein fehler?
würde mich freuen wenn ihr mir behilflich sein würdet.
greetz
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
wx.SetDefaultPyEncoding("iso-8859-15")
white = (255, 255, 255)
class UmlD(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Organigram', size=(1200,750))
self.panel = wx.Panel(self, -1)
self.SetBackgroundColour(white)
menubar = wx.MenuBar()
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
file = wx.Menu()
new = wx.MenuItem(file, 1, '&Neu')
new.SetBitmap(wx.Bitmap('new.png'))
file.AppendItem(new)
offnen = wx.MenuItem(file, 2, u'&Öffnen')
offnen.SetBitmap(wx.Bitmap('open.png'))
file.AppendItem(offnen)
speichern = wx.MenuItem(file, 3, '&Speichern')
speichern.SetBitmap(wx.Bitmap('save.png'))
file.AppendItem(speichern)
file.AppendSeparator()
quit = wx.MenuItem(file, 4, '&Beenden')
quit.SetBitmap(wx.Bitmap('quit.png'))
file.AppendItem(quit)
self.Bind(wx.EVT_MENU, self.OnQuit, id=4)
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
bearbeiten = wx.Menu()
andern = wx.MenuItem(bearbeiten, 5, '&Ändern')
andern.SetBitmap(wx.Bitmap('edit.png'))
bearbeiten.AppendItem(andern)
erase = wx.MenuItem(file, 6, '&Löschen')
erase.SetBitmap(wx.Bitmap('erase.png'))
bearbeiten.AppendItem(erase)
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
einfugen = wx.Menu()
klasse = wx.MenuItem(einfugen, 7, '&Neu')
klasse.SetBitmap(wx.Bitmap('linie.png'))
einfugen.AppendItem(klasse)
linie = wx.MenuItem(einfugen, 8, '&Kante')
linie.SetBitmap(wx.Bitmap('linie.png'))
einfugen.AppendItem(linie)
#erase = wx.MenuItem(file, 3, '&Loeschen')
#erase.SetBitmap(wx.Bitmap('erase.png'))
#bearbeiten.AppendItem(erase)
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
help = wx.Menu()
info = wx.MenuItem(help, 9, '&Info')
info.SetBitmap(wx.Bitmap('info.png'))
help.AppendItem(info)
menubar.Append(file, '&Datei')
menubar.Append(bearbeiten, '&Bearbeiten')
menubar.Append(einfugen, '&Einfugen')
menubar.Append(help, '&Hilfe')
self.SetMenuBar(menubar)
self.toolbar1 = wx.ToolBar(self.panel, -1)
self.toolbar1.AddLabelTool(1, '', wx.Bitmap('new.png'))
self.toolbar1.AddLabelTool(2, '', wx.Bitmap('open.png'))
self.toolbar1.AddLabelTool(3, '', wx.Bitmap('save.png'))
self.toolbar1.AddSeparator()
self.toolbar1.AddLabelTool(11, '', wx.Bitmap('add.png'))
self.toolbar1.AddLabelTool(5, '', wx.Bitmap('edit.png'))
self.toolbar1.AddLabelTool(12, '', wx.Bitmap('erase.png'))
self.toolbar1.AddSeparator()
self.toolbar1.AddLabelTool(13, '', wx.Bitmap('rechteck.png'))
self.toolbar1.AddLabelTool(14, '', wx.Bitmap('rechteck2.png'))
self.toolbar1.Realize()
self.Bind(wx.EVT_TOOL, self.zeichnenn, id=13)
self.Centre()
self.Show(True)
def OnQuit(self, event):
self.Close()
def zeichnenn(self,event):
wx.EVT_PAINT(self.panel, self.zeichnen)
def zeichnen(self, event):
dc = wx.PaintDC(self.panel)
dc.SetPen(wx.Pen(colour = wx.BLACK, width = 3, style = wx.SOLID))
dc.SetBrush(wx.Brush(colour = wx.RED, style = wx.SOLID))
dc.DrawRectangle(200, 100, 30, 30)
if __name__ == "__main__":
app = wx.App()
UmlD()
app.MainLoop()
warum erscheint das rechteck nicht sobald ich drauf klicke??Wo mache ich ein fehler?
würde mich freuen wenn ihr mir behilflich sein würdet.
greetz