1# -*- coding: utf-8 -*-
2## Add path to library (just for examples; you do not need this)
3import initExample
4
5from pyqtgraph.Qt import QtCore, QtGui
6import pyqtgraph as pg
7from pyqtgraph.GraphicsScene import GraphicsScene
8
9app = pg.mkQApp("GraphicsScene Example")
10win = pg.GraphicsView()
11win.show()
12
13
14class Obj(QtGui.QGraphicsObject):
15    def __init__(self):
16        QtGui.QGraphicsObject.__init__(self)
17        GraphicsScene.registerObject(self)
18
19    def paint(self, p, *args):
20        p.setPen(pg.mkPen(200,200,200))
21        p.drawRect(self.boundingRect())
22
23    def boundingRect(self):
24        return QtCore.QRectF(0, 0, 20, 20)
25
26    def mouseClickEvent(self, ev):
27        if ev.double():
28            print("double click")
29        else:
30            print("click")
31        ev.accept()
32
33    #def mouseDragEvent(self, ev):
34        #print "drag"
35        #ev.accept()
36        #self.setPos(self.pos() + ev.pos()-ev.lastPos())
37
38
39
40vb = pg.ViewBox()
41win.setCentralItem(vb)
42
43obj = Obj()
44vb.addItem(obj)
45
46obj2 = Obj()
47win.addItem(obj2)
48
49def clicked():
50    print("button click")
51btn = QtGui.QPushButton("BTN")
52btn.clicked.connect(clicked)
53prox = QtGui.QGraphicsProxyWidget()
54prox.setWidget(btn)
55prox.setPos(100,0)
56vb.addItem(prox)
57
58g = pg.GridItem()
59vb.addItem(g)
60
61if __name__ == '__main__':
62    pg.exec()
63