QListWidget から pyqtgraph.plotItem に項目をドラッグしたいです。どうやってやるの。
plotItem をクリックすると、どのアイテムがクリックされたかを知りたいです。一部のクラスのメソッドを再実装する必要があると思います。じゃあどのクラス?どうもありがとう。
1277 次
1 に答える
3
必要なものがいくつかあります。
- イベントを受け入れるように pg.GraphicsView.dragEnterEvent() をオーバーライドします。
- pg.PlotItem.setAcceptDrops(True) を呼び出す
- 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
于 2013-10-16T01:36:16.783 に答える