无法使用qlogvalueaxis.h

时间:2017-11-07 11:14:45

标签: c++ qt visual-c++ visual-studio-2015 qchart

我目前正在开发用于控制仪器的C ++应用程序。应使用QChart显示仪器输出。对于显示器,我使用QChartView小部件创建了一个Qt用户界面。

以下是显示类的头文件:

#pragma once

#include <QWidget>

#include "QtCharts\qchart.h"
#include <QtCharts\qchartview.h>
#include <QtCharts\qscatterseries.h>
#include <QtCharts\qlineseries.h>

#include "ui_ChartsDisplay.h"
#include <qthread.h>



using namespace QtCharts;

class ChartsDisplay : public QWidget
{
    Q_OBJECT

public:
    ChartsDisplay(QWidget *parent = Q_NULLPTR);
    ~ChartsDisplay();

private:
    Ui::ChartsDisplay ui;
    QLineSeries *trace,*retrace,*arbitrarySeriesX,*arbitrarySeriesY;
    QChart *chart;

    //QLogValueAxis *axisX, *axisY;

    void rescaleChart();


public slots:
    void SLUpdateChart(float *newValues);
    void SLSetupChartDisplay(int type);
    void SLResetChart();

    void SLUpdateNoise(float** newValues, int size);
};

我需要ChartDisplay类的两个实例。一个具有线性,一个具有对数缩放,用于显示不同的数据类型。

我在这里找到了一个关于使用对数轴缩放的Qt教程:

https://doc.qt.io/qt-5/qtcharts-logvalueaxis-example.html

但是,一旦我包含“qlogvalueaxis.h”,我的程序将不再编译。我得到了一长串源自“qlogvalueaxis.h”的语法错误。

我创建了一个新的Qt项目并使用qlogvalueaxis实现了一个使用对数缩放的简单图表,该图表工作正常。 我还清理了整个项目并在编译之前删除了所有qt生成的文件。问题仍然存在。 所有必需的库都与头文件链接和更新。

有关环境的一些信息: -Visual Studio 2015,社区版 -Qt框架5.8 - 操作系统是Win 7

任何建议你都会感激。

祝你好运, T. Krastev

1 个答案:

答案 0 :(得分:2)

我有一个类似的(或可能是相同的)问题。我收到编译错误,表明min()和max()函数原型已经在其他地方声明了,所以如果是这种情况,你可以通过在包含QtCharts头之前添加以下内容来省略min和max宏:

#ifdef max
#undef max
#endif

#ifdef min
#undef min
#endif