1000個のドットとPaintDCの使用、OnSizeでの再描画が素晴らしいです
3359 ワード
import wx
import random
class View(wx.Panel):
def __init__(self, parent):
super(View, self).__init__(parent)
self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
self.Bind(wx.EVT_PAINT, self.on_paint)
self.Bind(wx.EVT_SIZE, self.on_size)
def on_size(self, event): # OnSize ,
event.Skip() #
self.Refresh()
def on_paint(self, event):
dc = wx.AutoBufferedPaintDC(self)
dc.SetPen(wx.Pen('RED'))
for i in range(100):
w, h = self.GetSize()
x = random.randint(1, w-1)
y = random.randint(1, h-1)
dc.DrawCircle(x, y, 5)
# self.Refresh() # , , class Frame(wx.Frame):
def __init__(self):
super(Frame, self).__init__(None)
self.SetTitle('My Title')
self.SetClientSize((500, 500))
self.Center()
self.view = View(self)
def main():
app = wx.App(False)
frame = Frame()
frame.Show()
app.MainLoop()
if __name__ == '__main__':
main()