QML使用QtCharts 报错

新建一个 Qt Quick Application 应用,测试QtCharts模块报错:

import QtQuick 2.6
import QtQuick.Window 2.2
import QtCharts 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ChartView {
        width: 400
        height: 300
        theme: ChartView.ChartThemeBrownSand
        antialiasing: true

        PieSeries {
            id: pieSeries
            PieSlice { label: "eaten"; value: 94.9 }
            PieSlice { label: "not yet eaten"; value: 5.1 }
        }
    }
}

运行报错:
ASSERT: “!”No style available without QApplication!”” in file kernel\qapplication.cpp, line 1060
ASSERT: “!”No style available without QApplication!”” in file kernel\qapplication.cpp, line 1060

查看官方文档有这样一句话:

Note: Since Qt Creator 3.0 the project created with Qt Quick Application wizard based on Qt Quick 2 template uses QGuiApplication by default. As Qt Charts utilizes Qt Graphics View Framework for drawing, QApplication must be used. The project created with the wizard is usable with Qt Charts after the QGuiApplication is replaced with QApplication.

意思大概就是要在qtquick中使用QtCharts模块的话必须使用QApplication代替QGuiApplication。

pro文件中添加:

QT += widgets

修改main.cpp为:

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

运行正常。

猜你喜欢

转载自blog.csdn.net/a844651990/article/details/78972071