On Dec 2, 10:05 pm, Krishnakant <hackin...@gmail.com> wrote: > On Wed, 2009-12-02 at 00:20 -0800, madhura vadvalkar wrote: > > Hi > > > I am trying to write an PAINT like application where on the mouse > > click a circle is drawn on canvas. I am new to python and using > > wxpython to create this. > > > here is the code: > > > import wx > > > class SketchWindow(wx.Window): > > > def __init__ (self, parent,ID): > > > wx.Window.__init__(self, parent, ID) > > > self.panel =wx.Panel(self, size= (350,350)) > > self.pen=wx.Pen( 'blue',4) > > self.pos=(0,0) > > self.InitBuffer() > > self.Bind(wx.EVT_LEFT_DOWN,self.OnLeftDown) > > > def InitBuffer(self): > > > size=self.GetClientSize() > > self.Buffer=wx.EmptyBitmap(size.width,size.height) > > dc=wx.BufferedDC(None,self.buffer) > > dc.SetBackground(wx.Brush(self.GetBackgroundColour())) > > dc.Clear() > > self.Drawcircle(dc) > > self.reInitBuffer=False > > > def OnLeftDown(self,event): > > self.pos=event.GetPositionTuple() > > self.CaptureMouse() > > > def Drawcircle(self,dc): > > pen=wx.Pen(colour,thickness,wx.SOLID) > > dc.SetPen(pen) > > dc.DrawCircle(self.pos.x,self.pos.y,r) > > > class SketchFrame(wx.Frame): > > def __init__(self, parent): > > > wx.Frame.__init__(self, parent, -1, "Sketch Frame",size=(800,600)) > > self.sketch = SketchWindow(self, -1) > > > if __name__=='__main__': > > app=wx.PySimpleApp() > > frame=SketchFrame(None) > > frame.Show(True) > > app.MainLoop() > > > I am getting the following error: > > > Traceback (most recent call last): > > File "C:/Python26/circle.py", line 42, in <module> > > frame=SketchFrame(None) > > File "C:/Python26/circle.py", line 38, in __init__ > > self.sketch = SketchWindow(self, -1) > > File "C:/Python26/circle.py", line 12, in __init__ > > self.InitBuffer() > > File "C:/Python26/circle.py", line 19, in InitBuffer > > dc=wx.BufferedDC(None,self.buffer) > > AttributeError: 'SketchWindow' object has no attribute 'buffer' > > > Please tell me what I am doing wrong. > > > Thanks > > Madhura, Sorry to be a bit off-topic, but, I would really recommend you > to use pygtk instead of wx. > For one thing, the developers at pygtk are very active (they have their > mailing list as well ) and it comes by default with python on almost all > linux distros. You can also easily install it on windows.
wxPython has some very active developers as well, but the core isn't released all that often. I think this may be caused somewhat by the slow release cycle of wx itself though. > > Most important, the api for pygtk is closely similar to wx. > Not to mention the quick responses you will get with pygtk related > problems. The wxPython mailing list has very fast responses to questions as well (most of the time) ------------------- Mike Driscoll Blog: http://blog.pythonlibrary.org -- http://mail.python.org/mailman/listinfo/python-list