2
  1. QListWidget から pyqtgraph.plotItem に項目をドラッグしたいです。どうやってやるの。

  2. plotItem をクリックすると、どのアイテムがクリックされたかを知りたいです。一部のクラスのメソッドを再実装する必要があると思います。じゃあどのクラス?どうもありがとう。

4

1 に答える 1

3

必要なものがいくつかあります。

  1. イベントを受け入れるように pg.GraphicsView.dragEnterEvent() をオーバーライドします。
  2. pg.PlotItem.setAcceptDrops(True) を呼び出す
  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
于 2013-10-16T01:36:16.783 に答える