ポイントからスプラインチャートを作成しました。Qtチャートで移動
今は移動しながら、このキーボード上の矢印キーを使用してグラフ(左および右)と印刷すべての点(x、y)の上を移動したいと思います。
「移動」 - チャートの行の先頭に配置し、このドットを移動するにはキーボード(<、 - >)を使用します。
これを行う方法?
ポイントからスプラインチャートを作成しました。Qtチャートで移動
今は移動しながら、このキーボード上の矢印キーを使用してグラフ(左および右)と印刷すべての点(x、y)の上を移動したいと思います。
「移動」 - チャートの行の先頭に配置し、このドットを移動するにはキーボード(<、 - >)を使用します。
これを行う方法?
あなたはQGraphicsEllipseItemと、グラフ上の点を描くことができます:あなたはQGraphicsEllipseItemにパラメータとしてアイテムをグラフhttp://doc.qt.io/qt-4.8/qgraphicsellipseitem.html
パス。
QChartView *chartView = new QChartView(chart);
あなたはキーが押されたキャッチする機能を再実装することができます:これらのキーが押されたとき
void View::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
case Qt::Key_Left:
...
break;
case Qt::Key_Right:
...
break;
default:
QGraphicsView::keyPressEvent(event);
break;
}
}
あなたから行くことができるの
QGraphicsEllipseItem *ellipseItem = new QGraphicsEllipseItem(chart);
その後QChartViewを作成次のものを指す。ポイントの位置を取得するには、QXYSeries(http://doc.qt.io/qt-5/qxyseries.html)から継承されたあなたのスプラインシリーズの機能を使用します。
QPointF point = splineLine->at(index);
は、画面内の位置にチャートの位置を変換:
QPointF pointPos = chart->mapToPosition(point);
は、その後、あなたのellipseItemを配置:
ellipseItem->setPos(pointPos);
同じことをxとyの値で表示するには、QGraphicsEllipseItemの代わりにQGraphicsSimpleTextItemを使用します。あなたは彼らが互いの上に表示されないので、たとえば、手動で自分の位置を調整する必要があるかもしれません :
textItemX->setPos(pointPos.x() - 5, pointPos.y() +10);
とテキストを設定します。
QString textX = QString("x: %1").arg(pointPos.x());
textItemX->setText(textX);