Qt快速项目-如何在qml文件中调用cpp函数?

Qt快速项目-如何在qml文件中调用cpp函数?,qt,qml,Qt,Qml,我已经在Qt中创建了quick project,在Qt creator启动时从向导中选择。 Qt创建者创建项目。主项目中有qml应用程序vierwer子项目和qml文件。我想将新的cpp源文件和头文件(MainMenu.cpp和MainMenu.h)添加到项目中,然后从main.qml文件中的这些文件调用函数。 如何在qmlapplicationviewer中注册新类型并从菜单调用函数 qmlapplicationvierwer只有很少的功能: QApplication应用程序(argc、arg

我已经在Qt中创建了quick project,在Qt creator启动时从向导中选择。 Qt创建者创建项目。主项目中有qml应用程序vierwer子项目和qml文件。我想将新的cpp源文件和头文件(MainMenu.cpp和MainMenu.h)添加到项目中,然后从main.qml文件中的这些文件调用函数。 如何在qmlapplicationviewer中注册新类型并从菜单调用函数

qmlapplicationvierwer只有很少的功能:

QApplication应用程序(argc、argv)

以及:

更好的方法不是在没有项目向导的情况下创建项目


谢谢

通常,您可以使用此向导创建仅限QML的项目。 QML应用程序查看器只是一个轻量级C++包,围绕着你的QML文件,所以生成了二进制文件并加载了QML文件。p> 你自己做这件事没有什么魔力,看:


在QmlApplicationViewer costructor中的某个地方或之后(暂时没有尝试,如果不起作用请告诉我)。

通常,您使用此向导创建仅限QML的项目。 QML应用程序查看器只是一个轻量级C++包,围绕着你的QML文件,所以生成了二进制文件并加载了QML文件。p> 你自己做这件事没有什么魔力,看:


在QmlApplicationViewer构造函数中的某个地方或之后(暂时没有尝试,如果不起作用请告诉我)。

下一步是接受答案,如果这对您有效:-)下一步是接受答案,如果这对您有效:-)
QmlApplicationViewer viewer;
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
viewer.setMainQmlFile(QLatin1String("qml/PUTest/main.qml"));
viewer.showExpanded();

return app.exec();
viewer.addImportPath(const string &path);
#include <QApplication>
#include <QDeclarativeView>
#include <QDeclarativeContext>

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

 QDeclarativeView view;
 QDeclarativeContext *context = view.rootContext();
 context->setContextProperty("backgroundColor",
                             QColor(Qt::yellow));

 view.setSource(QUrl::fromLocalFile("main.qml"));
 view.show();

 return app.exec();
}
QDeclarativeContext *context = this.rootContext();
context->setContextProperty("backgroundColor", QColor(Qt::yellow));