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