Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QTL设置范围问题_C++_Windows_Qt - Fatal编程技术网

C++ QTL设置范围问题

C++ QTL设置范围问题,c++,windows,qt,C++,Windows,Qt,我想使用QtCharts显示一些数据。当我设置数据时,不显示任何内容。我认为问题在于setRange方法 代码: 图h: #如果没有图表# #定义图表 #包括 #包括 #包括 #包括 #包括 #包括 QT\u图表\u开始\u命名空间 QSplineSeries类; 类QValueAxis; QT\u图表\u结束\u命名空间 QT\u图表\u使用\u命名空间 类图:公共QChart { Q_对象 公众: 图表(QGraphicsItem*parent=0,Qt::WindowFlags wFlag

我想使用
QtCharts
显示一些数据。当我设置数据时,不显示任何内容。我认为问题在于
setRange
方法

代码:

图h:

#如果没有图表#
#定义图表
#包括
#包括
#包括
#包括
#包括
#包括
QT\u图表\u开始\u命名空间
QSplineSeries类;
类QValueAxis;
QT\u图表\u结束\u命名空间
QT\u图表\u使用\u命名空间
类图:公共QChart
{
Q_对象
公众:
图表(QGraphicsItem*parent=0,Qt::WindowFlags wFlags=0);
虚拟~Chart();
公众时段:
void handleTimeout();
私人:
QTimer mu定时器;
QSplineSeries*m_系列;
英语硕士学位;
QValueAxis*m_axix;
QValueAxis*m_轴;
qreal-m_步;
qrealmux;
qreal m_y;
QList测试列表;
};
#endif/*图表*/
chart.cpp:

#包括“chart.h”
图表::图表(QGraphicsItem*父,Qt::WindowFlags wFlags):
QChart(QChart::ChartTypeCartesian,parent,wFlags),
m_系列(0),
m_步骤(0),
m_x(1),
m_y(1)
{
m_axisX=新的QValueAxis(本);
m_axisX->setLabelsVisible(假);
m_axisY=新的QValueAxis(本);
m_axisY->setLabelsVisible(假);
连接(&m_timer,&QTimer::timeout,this,&Chart::handleTimeout);
m_定时器设置间隔(1000);
m_系列=新QSplineSeries(本);
QPen绿色(Qt::绿色);
绿色。设置宽度(3);
m_系列->设置笔(绿色);
m_系列->附加(m_x,m_y);
图例()->隐藏();
addSeries(m_系列);
setAxisX(m_axisX,m_系列);
setAxisY(m_axisY,m_系列);
m_axisX->setTickCount(5);

testList我已通过使用中的
QtNetworkMonitor
示例修复了该问题。该问题已得到解决

#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 */
#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()
{

}
#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();
}