0

ユーザーがマウスのクリックとリリースを介してプロットキャンバスに曲線を描画し、マウスを離した後に信号を発し、ポイントの配列を別のメソッドに送信してさらに処理できるようにしようとしています。

現在、私のコードは次のようになっています。

self.plotPicker = Qwt.QwtPlotPicker(Qwt.QwtPlot.xBottom, Qwt.QwtPlot.yLeft, Qwt.QwtPicker.PolygonSelection, Qwt.QwtPlotPicker.PolygonRubberBand, Qwt.QwtPicker.AlwaysOn, plot.canvas())
self.plotPicker.setRubberBandPen(QPen(Qt.green))
self.plotPicker.setTrackerPen(QPen(Qt.cyan))
self.connect(self.plotPicker, SIGNAL('selected(const QwtPolygon&)'), self.onDrawing)

問題は、メソッドQwtPolygonへの送信でonDrawing2 ポイントしか得られないことです。マウスが最初にクリックされた点と 2 回目にクリックされた点の間の直線の始点と終点。

Qwt (python の使用により v.5) のメソッドを介して任意の形状とポリゴンを記録することは可能ですか?

4

1 に答える 1

0

さて、オーバーロードしてQwtPlotPicker、返されたすべての座標を記録し、trackerText後で少しサンプリングすることで解決しました。次のようになります。

def trackerText(self, point):

    if _record:
        self.recording = True
        pos = self.invTransform(point)  
        if(len(self.recorded_data)):
            if(eucliddist((pos.x(), pos.y()), self.recorded_data[-1]) > 0.0):
                self.recorded_data.append((pos.x(), pos.y()))
        else:
            self.recorded_data.append((pos.x(), pos.y()))            
于 2013-08-20T12:19:44.540 に答える