报错一堆如下:
主要是说QCP的,表达式使用非法命名空间等等
解决办法:
解决办法并不是很复杂。
首先是删掉 QCP的命名空间,将其注释掉如下:
//#ifndef Q_MOC_RUN 注释掉
namespace QCP { //这个类保留即可
//#else 注释掉,下面这行也注释掉
//class QCP { // when in moc-run, make it look like a class, so we get Q_GADGET, Q_ENUMS/Q_FLAGS features in namespace
Q_GADGET
Q_ENUMS(ExportPen)
Q_ENUMS(ResolutionUnit)
Q_ENUMS(SignDomain)
Q_ENUMS(MarginSide)
Q_FLAGS(MarginSides)
Q_ENUMS(AntialiasedElement)
Q_FLAGS(AntialiasedElements)
Q_ENUMS(PlottingHint)
Q_FLAGS(PlottingHints)
Q_ENUMS(Interaction)
Q_FLAGS(Interactions)
Q_ENUMS(SelectionRectMode)
Q_ENUMS(SelectionType)
public:
//#endif 注释掉
再编译发现错误少了,还有如下错误:
找到getMarginValue和setMarginValue将inline 改为static,如下
//inline void setMarginValue(QMargins &margins, QCP::MarginSide side, int value) 修改如下
static void setMarginValue(QMargins &margins, QCP::MarginSide side, int value)
{
switch (side)
{
case QCP::msLeft: margins.setLeft(value); break;
case QCP::msRight: margins.setRight(value); break;
case QCP::msTop: margins.setTop(value); break;
case QCP::msBottom: margins.setBottom(value); break;
case QCP::msAll: margins = QMargins(value, value, value, value); break;
default: break;
}
}
其次注释掉下面这行:
//extern const QMetaObject staticMetaObject;
完美解决。运行其算例效果如下