2013-10-15 17 views
2
  1. 我想將一個項目從QListWidget拖到pyqtgraph.plotItem中。我怎樣才能做到這一點。pyqtgraph:如何拖放plotItems

  2. 當我點擊一個plotItem我想知道已被點擊哪個項目。 我想我需要重新實現一些類的方法。那麼哪一堂課? 非常感謝。

+0

對於#2,請打開第二個問題。 – Luke

回答

2

還有你需要幾件事情:

  1. 覆蓋pg.GraphicsView.dragEnterEvent()接受該事件。
  2. 呼叫pg.PlotItem.setAcceptDrops(真)
  3. 覆蓋pg.PlotItem.dropEvent()來處理的下降

您可以通過創建一個子類,或者通過簡單地重寫方法重新分配方法在現有的對象上。例如:

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