首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在QML或C++、BB10上设计用户界面

在QML或C++、BB10上设计用户界面
EN

Stack Overflow用户
提问于 2013-03-09 17:21:17
回答 3查看 1.5K关注 0票数 2

我需要写一个BB-10应用程序。该应用程序可能有相当多的用户界面,与动态页面等。我正在考虑编写应用程序逻辑(数据模型等)。在C++中。我应该使用QML进行UI设计吗?C++和QML之间的集成有多好和多灵活?我会不会遇到一些问题?我的UI可能由许多QML页面(或对话框,显示在导航窗格等)组成,当用户单击QML中的一些操作时,我可能想调用一些C++代码或导航到其他QML页面等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-09 18:59:09

我不知道任何关于移动开发的东西,但QML很好,应该使界面更容易维护,修改和移植到其他设备。

只要你使用好Qt框架,使用QObjects,Q_PROPERTYQ_INVOKABLE方法,QML和C++的集成就很容易。这真的很简单。

编辑:不过,我必须补充一点,我发现从C++访问QML对象并不像相反的那么容易。这是因为QML以几种数据类型的层次结构来组织对象,并且您必须使用findChild或检查objectName动态地发现子节点。

无论如何,由于QML允许绑定属性,您应该能够使用您的数据创建一些C++类,并在UI上轻松地访问它们;)

票数 4
EN

Stack Overflow用户

发布于 2013-03-10 03:13:01

我也经历过这样的情况,当你需要控制使用C++的应用程序时,qml不太do.best的方式,通过NavigationPane继承你的类,并将逻辑放在那里,使用QmlDocument::create()添加你的第一个页面,如果你在导航旁边有一些页面,使用sheet,并添加一些方法到这个类中,当你使用Q_INVOKABLE创建新页面时,传递setContext这个类来访问这些方法。最后,不要忘记添加或处理OnTrasitionEnded(Page*)信号来删除页面和释放内存

票数 1
EN

Stack Overflow用户

发布于 2013-04-18 14:47:45

简而言之: C++/QML集成非常好。有时可能会非常冗长,但在C++中没有什么是做不到的。

即使在C++中做每件事都要快一点。BlackBerry正在推动这个想法,用QML/Javascript编写所有的UI工作流程。

这样做的好处是业务逻辑和应用程序流之间的清晰分离。QML的另一个优点是编写起来更短,也更容易维护。不要忘记,您可以在C++中创建新的QML对象。

代码语言:javascript
运行
复制
onTriggered: {
    var item = dataModel.data(indexPath);
    if (item.count > 0) {
        appLogic.updateFeed(item.id);
        navPane.push(resultPage);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15309115

复制
相关文章

相似问题

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