在使用QChart时可能会出现添加QValueAxis时报错,解决方案可使用如下几种:
- 错误原因可能是造成与windows.h冲突,如果项目中包含windows.h文件,可将该文件修改为qt_windows.h。若项目中未包含该头文件可尝试如下做法。
- 在有错误输出类似于max、min定义错误时,错误原因:模板函数max和visual c++中的全局宏max冲突
void setMin(qreal min);
qreal min() const;
void setMax(qreal max);
例如:错误 117 error C2059: 语法错误:“<L_TYPE_raw>” 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
解决方案:
- 可在项目属性中预定义添加NOMINMAX,禁止使用c++的宏定义。修改方式:项目属性 ——> C/C++ ——> 预处理器 ——> 预处理器定义。或是在pro文件中添加DEFINES += NOMINMAX。
- 加括号,与vc中的max和min宏定义区分开。(std::max)(argv).