gpt4 book ai didi

c++ - 如何在 QtCharts 中自动重新缩放轴?

转载 作者:可可西里 更新时间:2023-11-01 18:39:27 24 4
gpt4 key购买 nike

我正在使用 QtCharts .

我需要在附加值后重新缩放两个轴。我附加的值不在 0 和 1 之间,也不来自 1970 年。

QtChart axis wrong scaled

我的对话框的构造函数代码如下所示:

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);

我的主窗口发出包含新值的信号。多个打开的图表对话框连接到该信号。

void ChartDialog::liveUpdate(const RealTimeMeasureRegisters &registers)
{
auto result = ((&registers)->*m_methodPtr)();

m_series->append(registers.timestamp(), result);
}

是否有一些简单的方法告诉 QDateTimeAxis(在我的例子中是 m_axisX)自动调整到新值?

QDateTimeAxis::setRange()看起来不太好,因为我需要设置最小值和最大值。

最佳答案

我不知道自动调整的方法,但你可以看看这个动态添加点到图表的例子: http://doc.qt.io/qt-5/qtcharts-dynamicspline-example.html

尽管在此示例中,添加点时范围受到限制,因此要更进一步,当下一个点超出范围时,需要重新调整范围。

正如您所说,setRange 需要一个最小值和一个最大值,但您可以在 liveUpdate 中更新它。

关于c++ - 如何在 QtCharts 中自动重新缩放轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39409994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com