Skip to content
Snippets Groups Projects
GraphicsScene.py 1.48 KiB
Newer Older
  • Learn to ignore specific revisions
  • # -*- coding: utf-8 -*-
    ## Add path to library (just for examples; you do not need this)
    
    Luke Campagnola's avatar
    Luke Campagnola committed
    from pyqtgraph.Qt import QtCore, QtGui
    
    import pyqtgraph as pg
    from pyqtgraph.GraphicsScene import GraphicsScene
    
    app = QtGui.QApplication([])
    win = pg.GraphicsView()
    win.show()
    
    
    class Obj(QtGui.QGraphicsObject):
        def __init__(self):
            QtGui.QGraphicsObject.__init__(self)
            GraphicsScene.registerObject(self)
            
        def paint(self, p, *args):
            p.setPen(pg.mkPen(200,200,200))
            p.drawRect(self.boundingRect())
            
        def boundingRect(self):
            return QtCore.QRectF(0, 0, 20, 20)
            
        def mouseClickEvent(self, ev):
            if ev.double():
    
                print("double click")
    
                print("click")
    
            ev.accept()
            
        #def mouseDragEvent(self, ev):
            #print "drag"
            #ev.accept()
            #self.setPos(self.pos() + ev.pos()-ev.lastPos())
            
            
    
    vb = pg.ViewBox()
    win.setCentralItem(vb)
    
    obj = Obj()
    vb.addItem(obj)
    
    obj2 = Obj()
    win.addItem(obj2)
    
    def clicked():
    
        print("button click")
    
    btn = QtGui.QPushButton("BTN")
    btn.clicked.connect(clicked)
    prox = QtGui.QGraphicsProxyWidget()
    prox.setWidget(btn)
    prox.setPos(100,0)
    vb.addItem(prox)
    
    g = pg.GridItem()
    vb.addItem(g)
    
    
    ## Start Qt event loop unless running in interactive mode.
    
    if __name__ == '__main__':
        import sys
        if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
            QtGui.QApplication.instance().exec_()