【问题标题】:Unable to compile Qt project using qlogvalueaxis.h无法使用 qlogvalueaxis.h 编译 Qt 项目
【发布时间】:2018-04-19 18:31:30
【问题描述】:

我目前正在开发用于控制仪器的 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.克拉斯特夫

【问题讨论】:

  • 任何错误示例?
  • 例如:代码:C2238 描述:';' 前面的意外标记项目:MacroAFM 文件:C:\Program Files (x86)\Qt\5.8\msvc2015\include\QtCharts\qlogvalueaxis.h 行:84 此错误在同一文件的同一行出现 3 次。所以我想与其他包含有一些冲突。

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


【解决方案1】:

我遇到了类似(或可能相同)的问题。我收到编译错误,表明 min() 和 max() 函数原型已经在别处声明,所以如果是这种情况,您只需在包含 QtCharts 标头之前添加以下内容即可省略 min 和 max 宏:

#ifdef max
#undef max
#endif

#ifdef min
#undef min
#endif

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多