作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用QtCharts
显示一些数据。当我设置数据时,什么也不会显示。我认为问题在于setRange
方法。
代码:
chart.h:
#ifndef CHART_H
#define CHART_H
#include <QChart>
#include <QTimer>
#include <QAbstractAxis>
#include <QSplineSeries>
#include <QValueAxis>
#include <QDebug>
QT_CHARTS_BEGIN_NAMESPACE
class QSplineSeries;
class QValueAxis;
QT_CHARTS_END_NAMESPACE
QT_CHARTS_USE_NAMESPACE
class Chart: public QChart
{
Q_OBJECT
public:
Chart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0);
virtual ~Chart();
public slots:
void handleTimeout();
private:
QTimer m_timer;
QSplineSeries *m_series;
QStringList m_titles;
QValueAxis *m_axisX;
QValueAxis *m_axisY;
qreal m_step;
qreal m_x;
qreal m_y;
QList<double> testList;
};
#endif /* CHART_H */
chart.cpp:
#include "chart.h"
Chart::Chart(QGraphicsItem *parent, Qt::WindowFlags wFlags):
QChart(QChart::ChartTypeCartesian, parent, wFlags),
m_series(0),
m_step(0),
m_x(1),
m_y(1)
{
m_axisX = new QValueAxis(this);
m_axisX->setLabelsVisible(false);
m_axisY = new QValueAxis(this);
m_axisY->setLabelsVisible(false);
connect(&m_timer, &QTimer::timeout, this, &Chart::handleTimeout);
m_timer.setInterval(1000);
m_series = new QSplineSeries(this);
QPen green(Qt::green);
green.setWidth(3);
m_series->setPen(green);
m_series->append(m_x, m_y);
legend()->hide();
addSeries(m_series);
setAxisX(m_axisX, m_series);
setAxisY(m_axisY, m_series);
m_axisX->setTickCount(5);
testList << 93.8436 << 777.797 << 2507.78 << 5999.44 << 6806.54 << 7481.16
<< 8008.5 << 8093.8 << 8161.83 << 8216.99
<< 8280.46 << 8328.4 << 8394.55 << 8469.84
<< 8500.65 << 8558.16 << 8660.9 << 8638.87
<< 8726.47 << 8715.25 << 8804.48 << 8793.86
<< 8839.42 << 8875.75 << 8938.24 << 8977.09
<< 9020.27 << 9046.7 << 9092.04 << 9121.58
<< 9155.36 << 9199.46;
axisX()->setRange(0, 100);
axisY()->setRange(-1, 100);
m_timer.start();
}
void Chart::handleTimeout()
{
qreal x = plotArea().width() / m_axisX->tickCount();
qreal y = (m_axisX->max() - m_axisX->min()) / m_axisX->tickCount();
m_x += y;
if (!testList.isEmpty()) {
m_y = testList.first();
testList.takeFirst();
}
qDebug() << "m_x: " << m_x << " " << "m_y: " << m_y;
m_series->append(m_x, m_y);
scroll(x, 0);
}
Chart::~Chart()
{
}
main.cpp:
#include "chart.h"
#include <QChartView>
#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget window;
Chart *chart = new Chart;
//chart->setTitle("Dynamic spline chart");
chart->setAnimationOptions(QChart::AllAnimations);
QChartView chartView(chart);
chartView.setRenderHint(QPainter::Antialiasing);
chartView.resize(window.size());
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(&chartView);
window.setLayout(layout);
window.setMinimumSize(810, 400);
window.show();
return a.exec();
}
任何想法如何解决?谢谢。
最佳答案
我已经通过使用GitHub中的QtNetworkMonitor
示例解决了该问题。问题已解决。
关于c++ - QtCharts setRange问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62607618/
我正在我的项目(Delphi 10 Seattle)中慢慢从 ClientDataSet 迁移到 FireDAC FDQuery 组件。 我经常在 CDS 中使用的一个技巧是检查某个范围内的记录计数。
我正在尝试读取从前 1048576 个字节开始的大型 AWS S3 对象的一段。我指定了我想要读取的字节范围,但我没有收到这些字节。返回的长度是正确的。 我在这方面还很陌生,所以我可能做错了什么,作为
我在使用 Delphi2010 在 Paradox 7 表中设置二级索引范围时遇到问题。 相关字段是: 特征类型(int); Y 最大 (int); X 最大 (int); YMin(int); Xm
在 Windows 上使用 setRange(0, 0) 时,如何在 QProgressBar 中间放置文本(不仅仅是数字)? 下面是一个 PyQt 示例,它仍然无法按预期工作。 import sys
我是一名优秀的程序员,十分优秀!