Qt中添加QDateTimeAxis、QValueAxis时报错

在使用QChart时可能会出现添加QValueAxis时报错,解决方案可使用如下几种:

  1. 错误原因可能是造成与windows.h冲突,如果项目中包含windows.h文件,可将该文件修改为qt_windows.h。若项目中未包含该头文件可尝试如下做法。
  2. 在有错误输出类似于max、min定义错误时,错误原因:模板函数max和visual c++中的全局宏max冲突
 void setMin(qreal min);
 qreal min() const;
 void setMax(qreal max);

例如:错误    117    error C2059: 语法错误:“”    d:\qt5.7.1\5.7\msvc2013\include\qtcharts\qvalueaxis.h  

错误    131    error C2061: 语法错误: 标识符“QDateTime”    d:\qt5.7.1\5.7\msvc2013\include\qtcharts\qdatetimeaxis.h  

  解决方案:

  1. 可在项目属性中预定义添加NOMINMAX,禁止使用c++的宏定义。修改方式:项目属性   ——> C/C++ ——> 预处理器 ——> 预处理器定义。或是在pro文件中添加DEFINES += NOMINMAX。
  2. 加括号,与vc中的max和min宏定义区分开。(std::max)(argv).

你可能感兴趣的:(Qt)