from wxPython.wx import *
class ChartFrame(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, "Wykres", size=(800,600),
style=wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE)
chart = ChartWindow(self, -1)
class ChartWindow(wxWindow):
def __init__(self, parent, ID):
wxWindow.__init__(self, parent, ID, style=wxNO_FULL_REPAINT_ON_RESIZE)
self.SetBackgroundColour("WHITE")
self.thickness = 1
self.InitBuffer()
def InitBuffer(self):
size = self.GetClientSize()
self.buffer = wxEmptyBitmap(size.width, size.height)
dc = wxBufferedDC(wxClientDC(self), self.buffer)
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
dc.BeginDrawing()
dc.SetPen(wxPen(wxNamedColour("BLACK"), 10, wxSOLID))
dc.DrawRectangle(5, 5, 10, 20)
dc.DrawLine(0, 0, 1000, 1000)
dc.EndDrawing()
app = wxPySimpleApp()
chart = ChartFrame(None)
chart.Show(1)
app.MainLoop()
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
from wxPython.wx import *
class ChartFrame(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, "Wykres", size=(800,600),
style=wxDEFAULT_FRAME_STYLE |
wxNO_FULL_REPAINT_ON_RESIZE)
self.chart = ChartWindow(self, -1)
class ChartWindow(wxWindow):
def __init__(self, parent, ID):
wxWindow.__init__(self, parent, ID,
style=wxNO_FULL_REPAINT_ON_RESIZE)
EVT_PAINT(self, self.OnPaint)
EVT_SIZE(self, self.OnSize)
def InitBuffer(self):
self.SetBackgroundColour("WHITE")
size = self.GetClientSize()
self.buffer = wxEmptyBitmap(size.width, size.height)
dc = wxBufferedDC(wxClientDC(self), self.buffer)
dc.BeginDrawing()
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
dc.SetPen(wxPen(wxNamedColour("BLACK"), 5, wxSOLID))
dc.DrawRectangle(5, 5, 100, 100)
dc.DrawLine(0, 0, size.width, size.height)
dc.EndDrawing()
def OnPaint(self, event):
dc = wxBufferedPaintDC(self, self.buffer)
def OnSize(self, event):
self.InitBuffer()
dzięki Ci wielkie :) fakt: brakowało obsługi tych dwóch zdarzeń. Już
mnie wczoraj trafiało, bo nie wiedziałem co się dzieje :)
pozdrawiam
tomek
from wxPython.wx import *
class ChartFrame(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, "Wykres", size=(800,600),
style=wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE)
chart = ChartWindow(self, -1)
class ChartWindow(wxWindow):
def __init__(self, parent, ID):
wxWindow.__init__(self, parent, ID, style=wxNO_FULL_REPAINT_ON_RESIZE)
self.SetBackgroundColour("WHITE")
self.thickness = 1
EVT_PAINT(self,self.OnPaint)
EVT_ERASE_BACKGROUND(self,self.OnEraseBack)
def OnPaint(self, event):
size = self.GetClientSize()
self.buffer = wxEmptyBitmap(size.width, size.height)
dc = wxBufferedDC(wxClientDC(self), self.buffer)
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
dc.BeginDrawing()
dc.SetPen(wxPen(wxNamedColour("BLACK"), 10, wxSOLID))
dc.DrawRectangle(5, 5, 10, 20)
dc.DrawLine(0, 0, 1000, 1000)
dc.EndDrawing()
event.Skip()
def OnEraseBack(self, event):
return 0 #?
app = wxPySimpleApp()
chart = ChartFrame(None)
chart.Show(1)
app.MainLoop()
--
"Lis wprędce przeto zaniechał daremnych podskoków
I rzekł: 'Kwaśne, zielone, dobre dla żarłoków.'"
Jean de La Fontaine