QtChartsを使用しています。
値を追加した後、両方の軸を再スケーリングする必要があります。追加した値は 0 から 1 の間ではなく、1970 年のものでもありません。
ダイアログのコンストラクター コードは次のようになります。
m_series = new QLineSeries;
m_series->setName(name);
auto chart = new QChart;
chart->legend()->setVisible(false);
chart->addSeries(m_series);
m_axisX = new QDateTimeAxis;
//m_axisX->setFormat("HH:mm:ss");
m_axisX->setTitleText(tr("Zeitpunkt"));
chart->addAxis(m_axisX, Qt::AlignBottom);
m_series->attachAxis(m_axisX);
auto axisY = new QValueAxis;
axisY->setTitleText(unit);
chart->addAxis(axisY, Qt::AlignLeft);
m_series->attachAxis(axisY);
auto chartView = new QChartView(chart, this);
chartView->setRenderHint(QPainter::Antialiasing);
私の MainWindow は、新しい値を含むシグナルを発します。複数の開いているチャート ダイアログがそのシグナルに接続されています。
void ChartDialog::liveUpdate(const RealTimeMeasureRegisters ®isters)
{
auto result = ((®isters)->*m_methodPtr)();
m_series->append(registers.timestamp(), result);
}
QDateTimeAxis (私の場合m_axisX
) に新しい値に自動的に調整するように指示する簡単な方法はありますか?
QDateTimeAxis::setRange()は見栄えがよくありません。最小値と最大値を設定する必要があるためです。