首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDeclarative代码移植到QT5.6.0的策略

QDeclarative代码移植到QT5.6.0的策略
EN

Stack Overflow用户
提问于 2016-05-19 21:18:50
回答 1查看 473关注 0票数 0

我试图在大型非QML应用程序(“主应用程序”)的QMdiArea中添加一个当前独立的QML应用程序(“新应用程序”)中的显示小部件。我试图将其添加到使用QT5.6.0的主要应用程序中,而新的应用程序使用QT4.8。

我的第一步是在Qt5.6下编译“新应用程序”,但是Qt4和Qt5之间QML应用程序的主要架构更改让我感到困惑。“新应用程序”的主视图直接从QDeclarativeView继承,并大量使用QWidget和QGraphicsView功能。

Qt关于将QML应用程序从Qt4迁移到Qt5 (http://doc.qt.io/qt-5/qtquick-porting-qt5.html)的指南似乎建议使用不受欢迎的声明模块来解决这个问题,但从5.6.0开始,QDeclarative的所有源代码都已从qtquick1中删除,我无法将“主应用程序”切换回较早版本的Qt。

我对Qt和“新应用程序”都很陌生。有什么方法比完全理解当前设计的“新应用程序”,然后阅读旧的声明式框架和新的qt腿框架,重组/重写所有东西来使用新的qt腿框架更容易吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-20 07:33:15

对QML2的移植工作在很大程度上取决于您拥有多少自定义项,以及您如何与主应用程序中的声明性视图交互。无论哪种方式,我强烈建议在尝试移植之前花时间实际理解现有的QML代码。大部分移植代码通常只包含用QQuick*替换QDeclarative*,但最终您将不得不面对移植过程中的QGraphicsView -> OpenGL部分。

对于将QML2场景嵌入到QWidget应用程序中,QQuickWidget是您所需要的。

我感到有点惊讶的是,QtQuick1被完全删除了,而不是仅仅在qt5.6中被否决了。如果您编译并发布了您自己的工具链,那么重新引入qtquick1子模块不应该太费劲,因为qt5.6中没有重大的体系结构更改来阻止它的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37334164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档