私はlsLine
のラインスタイルを持っている私のQCustomPlot
に異なるポイントのプロット値を表示しようとしています。私はQCustomPlot
で信号上にマウスを置くことができることを知っているが、それはマウスが私のプロットされたline.Myの上にあるときに通知する必要があるので、本当に助けてあげないだろう私の質問は、ポイント。マウスが散乱点の上に来たときに私に教えてくれる信号がありますか?マウスの上にプロット値を表示します。 - スキャッタポイントを検出する
答えて
QCustomPlot::mouseMoveEvent
を再実装するか、QCustomPlot::mouseMove
に接続してください。
次に、軸のcoordToPixel
を使用してピクセル座標をプロット座標に変換し、QCPDataMap
の最も近い点をQMap::lowerBound(cursorX)
で検索します。
QCustomPlot
が発信するmouseMove
信号にスロットを接続するだけで簡単に接続できます。その後、座標見つけるためQCPAxis::pixelToCoord
を使用することができます。あなたは、X軸(第2あたりの点を含む)日時フォーマットを使用するとき
ui、 'ui-> widget_graph1'と' ui-> widget_graph2'に2つのグラフがある場合、どのように両方のグラフに対してそれを行うことができますか?私のケースに合わせて 'void CustomPlot :: showPointToolTip(QMouseEvent * event){}'という関数名を変更する必要がありますか?私は両方のグラフにマウスのホバー上の座標を表示したい、 – Wei
@Wei私が行ったように 'QCustomPlot'ソースコードでスロットを実装すると、すべてのプロットのツールチップが表示されます。別のクラスにスロットを置いて、 'sender()'を使って 'mouseMove'シグナルを送出したプロットを見つけることもできます。 – Nejat
私は 'QCustomPlot :: toolTip'しか見つけず、あなたの' void QCustomPlot :: showPointToolTip(QMouseEvent * event){} 'を' void QCustomPlot :: toolTip(QMouseEvent * event){} 'に変更しました。 ? – Wei
connect(this, SIGNAL(mouseMove(QMouseEvent*)), this,SLOT(showPointToolTip(QMouseEvent*)));
void QCustomPlot::showPointToolTip(QMouseEvent *event)
{
int x = this->xAxis->pixelToCoord(event->pos().x());
int y = this->yAxis->pixelToCoord(event->pos().y());
setToolTip(QString("%1 , %2").arg(x).arg(y));
}
、次いで、画素が失敗COORDします。あなたはポイント間の座標を表示したい場合は が、これは多分便利に@Rajeshwar
void MainWindow::onMouseMoveGraph(QMouseEvent* evt)
{
int x = this->ui->customPlot->xAxis->pixelToCoord(evt->pos().x());
int y = this->ui->customPlot->yAxis->pixelToCoord(evt->pos().y());
qDebug()<<"pixelToCoord: "<<data.key<<data.value; //this is correct when step is greater 1 second
if (this->ui->customPlot->selectedGraphs().count()>0)
{
QCPGraph* graph = this->ui->customPlot->selectedGraphs().first();
QCPData data = graph->data()->lowerBound(x).value();
double dbottom = graph->valueAxis()->range().lower; //Yaxis bottom value
double dtop = graph->valueAxis()->range().upper; //Yaxis top value
long ptop = graph->valueAxis()->axisRect()->top(); //graph top margin
long pbottom = graph->valueAxis()->axisRect()->bottom(); //graph bottom position
// result for Y axis
double valueY = (evt->pos().y() - ptop)/(double)(pbottom - ptop)*(double)(dbottom - dtop) + dtop;
//or shortly for X-axis
double valueX = (evt->pos().x() - graph->keyAxis()->axisRect()->left()); //graph width in pixels
double ratio = (double)(graph->keyAxis()->axisRect()->right() - graph->keyAxis()->axisRect()->left())/(double)(graph->keyAxis()->range().lower - graph->keyAxis()->range().upper); //ratio px->graph width
//and result for X-axis
valueX=-valueX/ratio + graph->keyAxis()->range().lower;
qDebug()<<"calculated:"<<valueX<<valueY;
}
}
- 1. Rプロットの値を表示
- 2. マウスの上に画像を表示
- 3. マウスの上にd3.layout.forceリンクツールチップを表示
- 4. divのホバー上にマウスを置いて表示メニューを表示する場合
- 5. HTML送信ボタンのマウス・ホバー上にツールチップを表示する
- 6. Unix上でマウスの状態を検出する方法
- 7. javascriptを使用してマウスの画像上にテキストを表示
- 8. モバイル上で非表示/非表示のBluetoothデバイスを検出する
- 9. マウスがli cssの上にマウスを置いたときにulクラスを表示
- 10. Androidアプリのアップグレードを検出し、EULAの表示/非表示のアプリケーションクラスのブール値を設定します
- 11. イメージコントロールの上にマウスがあるときにポップアップ表示
- 12. マウスのコールバックを使用して座標とピクセル値を表示
- 13. jqueryスクリプトがswfオブジェクト上でのマウスの動きを検出するようにしますか?
- 14. は、フラッシュ上にクッキー値を表示しています。
- 15. DIV上にマウスを置いてjQueryのdatepickerを表示する方法は?
- 16. hoverIntentでホバー上のマウス位置にDIVを表示
- 17. ビジュアルスタジオ2010フォームデザイナー上にマウスの位置を表示
- 18. C#WPF DataGridマウスの上に画像を表示
- 19. バー上にマウスを置いたときにラベルを表示する方法
- 20. は、マウスの上にあるDOM要素をinspectのように強調表示します
- 21. 別のdivをマウスで表示する
- 22. ホバーキャプションをマウス上に表示し、上下にスライドさせるにはどうすればよいですか?
- 23. スキャッタポイントの色を変更する
- 24. pygtkウィンドウを残してマウスを検出
- 25. キーボードの表示と非表示を検出する方法
- 26. マウスが押されているのを検出しました
- 27. 3Dプロットにトゥルーカラーの2D RGBテクスチャを表示しますか?
- 28. テキストの上にマウスを乗せているかどうかを検出する方法はありますか?
- 29. Matplotlibを使用してプロットを表示するのではなく、プロットを画像ファイルに保存します
- 30. Pythonを使用してWindowsでマウスのクリックを検出する
(接続された信号
QCustomplot::MouseMove
で) 'coordToPixel'はピクセル座標にプロット座標変換する最速の方法です。どのようにあなたの問題を解決しましたか? – Nejat