File: PaintDC.1.py

package info (click to toggle)
wxpython4.0 4.2.3%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 221,752 kB
  • sloc: cpp: 962,555; python: 230,573; ansic: 170,731; makefile: 51,756; sh: 9,342; perl: 1,564; javascript: 584; php: 326; xml: 200
file content (44 lines) | stat: -rw-r--r-- 1,095 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
##Andrea Gavana
#!/usr/bin/env python

# This sample uses the random module to draw 100 random lines iinside
# a wx.Frame client area, as a demonstration of how to handle a wx.PaintDC

import wx
import random

class PaintFrame(wx.Frame):

    def __init__(self, parent, title):

        wx.Frame.__init__(self, parent, title=title)

        # Bind a "paint" event for the frame to the
        # "OnPaint" method
        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Show()


    def OnPaint(self, event):

        dc = wx.PaintDC(self)
        w, h = self.GetClientSize()

        # Use a blue pen, for example...

        dc.SetPen(wx.Pen('BLUE'))

        # Remember the signature of wx.DC.DrawLine:
        # DrawLine(x1, y1, x2, y2)

        for i in range(100):
            x1 = random.randint(1, w-1)
            y1 = random.randint(1, h-1)
            x2 = random.randint(1, w-1)
            y2 = random.randint(1, h-1)
            dc.DrawLine(x1, y1, x2, y2)


app = wx.App(False)
frame = PaintFrame(None, 'PaintDC example')
app.MainLoop()