如何解决QT-C ++与QML-将QML应用程序与C ++应用程序集成
有什么方法可以将QML应用程序与C ++集成在一起?
我有什么?
我有一个使用 C ++ 和 ui 文件制作的应用程序,它们应该是主要应用程序,另外我还有一个仅用 QML 。
问题
在女巫中,我有什么办法可以获取用QML编写的页面并在C ++应用程序中访问它们?我之所以问这个原因是因为我已经看到,实际上它的主要内容完全不同。
C ++主程序:
QApplication a(argc,argv);
MainWindow w(&a);
w.show();
return a.exec();
QML主要:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc,argv);
qmlRegisterType<MovieListModel>("MovieListModel",1,"MovieListModel");
qmlRegisterType<MovieModel>("MovieModel","MovieModel");
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&engine,&QQmlApplicationEngine::objectCreated,&app,[url](QObject *obj,const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
},Qt::QueuedConnection);
engine.load(url);
return app.exec();
问题
如何合并这两个应用程序,或者甚至可以以某种方式合并它们,如果在我的应用程序中,我将单击按钮以从 UI 文件转到页面(或直接由 C ++ 代码生成),如果我单击另一个按钮进入 QML 页面?
如果您知道我该怎么做,请告诉我,因为我可以在Google上找到的所有内容都是如何将 QML 文件作为ui并使用一些 C ++ 作为该特定UI的后端。但是,关于如何在UI方面将两者结合起来,没有任何事情。
解决方法
一段时间后,我找到了答案。
有一个专门用于该特定目的的特殊QQuickWidget。
QQuickWidget *view = new QQuickWidget;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。