我是使用 QML 编程 Qt 的新手,我喜欢做一个用 QML 设计的程序,它有一个复合的前端,QtChart,它是用 c++ 编写的。
我喜欢在 QML 前端的一个特定位置显示不同样式和类型的图表,所以我认为在 c++ 中进行所有图表操作会更容易。
请帮助我,并告诉我我是否做错了?如果有任何方法请告诉我。
提前致谢。
我的想法:
主文件
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlEngine engine;
QQmlComponent component(&engine,QUrl::fromLocalFile("qrc:/main.qml"));
QObject *object = component.create();
QQmlApplicationEngine engine2;
engine2.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *objekt = engine2.rootObjects().first();
QObject *rect = objekt->findChild<QObject*>("myChart");
if (rect)
{
qDebug("it works");
QLineSeries *series = new QLineSeries();
series->append(0, 6);
series->append(2, 4);
series->append(3, 8);
series->append(7, 4);
series->append(10, 5);
QChart *graph = new QChart();
graph->addSeries(series);
QChartView *mayChart = new QChartView(graph);
mayChart->setRenderHint(QPainter::Antialiasing);
//Hear I don´t know, how I can do such an operation
rect.setCentralWidget(mayChart);
}
}
QML“main.qml”
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
objectName: "mainWindow"
Rectangle{
width: parent.width
height: parent.height
color: "black"
objectName: "rect"
}
}