2
  1. 我想将一个项目从 QListWidget 拖到 pyqtgraph.plotItem 中。我怎样才能做到这一点。

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

4

1 回答 1

3

你需要一些东西:

  1. 覆盖 pg.GraphicsView.dragEnterEvent() 以接受事件。
  2. 调用 pg.PlotItem.setAcceptDrops(True)
  3. 覆盖 pg.PlotItem.dropEvent() 来处理 drop

您可以通过创建子类或简单地在现有对象上重新分配方法来覆盖方法。例子:

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
于 2013-10-16T01:36:16.783 回答