本文主要是介绍QtCharts移植报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 目的
- 解决方案
目的
由于在linux 实现了一套自定义BarChart, 它本身继承自QChart
class BarChart : public QChart
{Q_OBJECT
public:explicit BarChart(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = 0);~BarChart();
};
后来依据实际需要, 要将此项目移植到windows + vs2019 + Qt5.15.2下, 然后编译项目过程中就产生了如下问题。
缺少分号“;” 意外的分号“:”
“QtCharts::QtCharts::QtCharts::QtCharts::std::bad_weak_ptr::what”: 包含重写说明符“override”的方法没有重写任何基类方法
“QtCharts::QtCharts::QAbstractBarSeries”: 未定义基类
刚开始是有点懵逼, 寻思linux能编译过, QCharts编译本身就是跨平台兼容的, 不应该出错才对。
解决方案
#include <QtCharts/QtCharts>
求助 请问 VS2019配完了qt的库,只要include QtCharts还会报错可以怎么解决
#include <QtCharts>头文件报错
参考这两位博客, 此类问题最终就是没找到对应正确的QCharts。我们可以通过如下思路解决QCharts某种变化过程中导致问题。
- pro 文件中加入 QT += charts (前提是你安装qt过程中安装的chart模块)
- QT_CHARTS_USE_NAMESPACE 宏定义添加
- #include <QtCharts/QtCharts> 头文件包含
- #pragma comment(lib, “Qt5Charts.lib”)
我的最终版本解决就是添加此 。
#pragma comment(lib, "Qt5Charts.lib")
初步猜想可能是找到库位置不对, 导致release 版本下编译过程中, 找的qtchart不对。
#include <QObject>
#if unix
#include <QChart>
#else
#include <QtCharts/QtCharts>
#pragma comment(lib, "Qt5Charts.lib")
#endif#include <QtCharts/QChartGlobal>
#include <QtCharts/QBarSet>
#include <QtCharts/QAbstractAxis>
#include <QtCharts/QBarCategoryAxis>
#include <QtCharts/QValueAxis>
#include <QtCharts/QBarSeries>
#include <QtCharts/QSplineSeries>
#include <QtCharts/QChartView>QT_BEGIN_NAMESPACE
QT_CHARTS_USE_NAMESPACE
class BarChart : public QChart
{Q_OBJECT
public:explicit BarChart(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = 0);~BarChart();
};
QT_END_NAMESPACE
这篇关于QtCharts移植报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!