Aluode/PerceptionLabPortable
0
1import pyqtgraph as pg2from pyqtgraph.Qt import QtCore, QtWidgets3 4app = pg.mkQApp("GraphicsScene Example")5win = pg.GraphicsView()6win.show()7 8 9class Obj(QtWidgets.QGraphicsObject):10 def __init__(self):11 QtWidgets.QGraphicsObject.__init__(self)12 13 def paint(self, p, *args):14 p.setPen(pg.mkPen(200,200,200))15 p.drawRect(self.boundingRect())16 17 def boundingRect(self):18 return QtCore.QRectF(0, 0, 20, 20)19 20 def mouseClickEvent(self, ev):21 if ev.double():22 print("double click")23 else:24 print("click")25 ev.accept()26 27 #def mouseDragEvent(self, ev):28 #print "drag"29 #ev.accept()30 #self.setPos(self.pos() + ev.pos()-ev.lastPos())31 32 33 34vb = pg.ViewBox()35win.setCentralItem(vb)36 37obj = Obj()38vb.addItem(obj)39 40obj2 = Obj()41win.addItem(obj2)42 43def clicked():44 print("button click")45btn = QtWidgets.QPushButton("BTN")46btn.clicked.connect(clicked)47prox = QtWidgets.QGraphicsProxyWidget()48prox.setWidget(btn)49prox.setPos(100,0)50vb.addItem(prox)51 52g = pg.GridItem()53vb.addItem(g)54 55if __name__ == '__main__':56 pg.exec()57 