pyqtgraph:如何拖放到plotItems中

时间:2013-10-15 11:28:12

标签: python pyqtgraph

  1. 我想将项目从QListWidget拖到pyqtgraph.plotItem中。我怎么能这样做。

  2. 当我点击plotItem时,我想知道哪个项目已被点击。 我想我需要重新实现一些类的方法。然后是哪一堂课? 非常感谢。

1 个答案:

答案 0 :(得分:2)

您需要一些东西:

  1. 覆盖pg.GraphicsView.dragEnterEvent()以接受该事件。
  2. 调用pg.PlotItem.setAcceptDrops(True)
  3. 覆盖pg.PlotItem.dropEvent()以处理drop
  4. 您可以通过创建子类或仅在现有对象上重新分配方法来覆盖方法。例如:

    import pyqtgraph as pg
    app = pg.QtGui.QApplication([])
    
    l = pg.QtGui.QListWidget()
    l.addItem('Drag me')
    l.setDragDropMode(l.DragOnly)
    l.show()
    
    win = pg.GraphicsWindow()
    win.show()
    
    def dragEnterEvent(ev):
        ev.accept()
    
    win.dragEnterEvent = dragEnterEvent
    
    plot = pg.PlotItem()
    plot.setAcceptDrops(True)
    win.addItem(plot)
    
    def dropEvent(event):
        print "Got drop!"
    
    plot.dropEvent = dropEvent