0

QCustomPlotユーザーがマウスを押してドラッグすると、軸を再スケーリングするコードを記述しようとしている場所を使用しています。やった:

   connect(ui->plot, SIGNAL(mousePress(QMouseEvent *event)), this,  SLOT(mousedrag(QMouseEvent*))); 

そして私は得続けます:

QObject::connect: そのような信号はありません QCustomPlot::mousePress(QMouseEvent *event)

ただしmouseWheel(QWheelEvent*)、 と の両方mouseWheelには、ライブラリmousePressで宣言されたシグナルがあります。QCustomPlot

どこが間違っていますか?また、誰かがmousedrag(QMouseEvent*)y1 軸に従って y2 軸を再スケーリングする私の関数をトリガーするためのより良い信号を持っている場合、私は提案を受け付けています。

4

2 に答える 2

0

「古い」シグナル/スロット接続構文を使用する場合、つまり、ステートメントでSIGNALおよびSLOTマクロを使用する場合、パラメーターの名前は指定せず、タイプのみを指定します。connect()

言い換えると:

SIGNAL(mousePress(QMouseEvent *event)) // WRONG, parameter name in there!
SIGNAL(mousePress(QMouseEvent *)) // GOOD
SIGNAL(mousePress(QMouseEvent*)) // BETTER: already normalized

したがって、ステートメントを次のように変更するだけです

connect( ui->plot, SIGNAL(mousePress(QMouseEvent*)), 
         this,     SLOT(mousedrag(QMouseEvent*)) ); 
于 2016-06-03T20:01:36.877 に答える