File: qt4_simple.py

package info (click to toggle)
python-enable 4.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 7,280 kB
  • ctags: 13,899
  • sloc: cpp: 48,447; python: 28,502; ansic: 9,004; makefile: 315; sh: 44
file content (64 lines) | stat: -rw-r--r-- 1,653 bytes parent folder | download | duplicates (2)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# This is PyQt specific so force the toolkit selection.
from traits.etsconfig.api import ETSConfig
ETSConfig.toolkit = 'qt4.qpainter'

from numpy import array
import sys

try:
    from pyface.qt import QtGui
except ImportError:
    raise Exception('PyQt4 needs to be installed to run this example')

from enable.example_canvas import Canvas


class MyCanvas(Canvas):

    def do_draw(self, gc):
        w = gc.width()
        h = gc.height()

        # Draw a red gradient filled box with green border
        gc.rect(w/4, h/4, w/2, h/2)
        gc.set_line_width(5.0)
        gc.set_stroke_color((0.0, 1.0, 0.0, 1.0))

        start = array([0.0, 1.0, 0.0, 0.0, 1.0])
        end = array([1.0, 1.0, 1.0, 1.0, 1.0])
        gc.radial_gradient(w/4, h/4, 200, w/4+100, h/4+100,
                           array([start, end]), 'reflect')
        gc.draw_path()

        # draw a black rect with rounded corners
        r = max(1, min(w,h)/10)
        gc.set_line_width(2.0)
        gc.set_stroke_color((0.0, 0.0, 0.0, 1.0))
        gc.move_to(w/3, h/2)

        gc.arc_to(w/3, 2*h/3,
                  w/2, 2*h/3,
                  r)
        gc.arc_to(2*w/3, 2*h/3,
                  2*w/3, h/2,
                  r)
        gc.arc_to(2*w/3, h/3,
                  w/2, h/3,
                  r)
        gc.arc_to(w/3, h/3,
                  w/3, h/2,
                  r)
        gc.line_to(w/3, h/2)
        gc.stroke_path()
        return


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)

    w = MyCanvas()
    w.control.resize(500, 500)
    w.control.setWindowTitle("Simple Kiva.qt4 example")
    w.control.show()

    app.exec_()