Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在QML或C+上设计用户界面+;,BB10_C++_Qml_Blackberry 10_Blackberry Cascades - Fatal编程技术网

C++ 在QML或C+上设计用户界面+;,BB10

C++ 在QML或C+上设计用户界面+;,BB10,c++,qml,blackberry-10,blackberry-cascades,C++,Qml,Blackberry 10,Blackberry Cascades,我需要写一个BB-10应用程序。 该应用程序可能有相当复杂的用户界面,带有动态页面等。 我正在考虑编写应用程序逻辑(数据模型等) 在C++中。 我应该在UI设计中使用QML吗?集成有多好和灵活 在C++与QML之间?我会不会遇到一些问题? 我的UI可能由许多QML页面(或对话框,显示在导航窗格中等)组成, 当用户点击QML中的一些动作时,我可能想调用一些C++ 编码或导航到其他QML页面等。 谢谢您的帮助。我对移动开发一无所知,但QML很好,应该使界面更易于维护、修改和移植到其他设备 PQ>只

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

我对移动开发一无所知,但QML很好,应该使界面更易于维护、修改和移植到其他设备

<> PQ>只要使用QT框架,使用QObjices,<代码> QyFiels和<代码> Qy可可调用< /COD>方法,QML和C++的集成就很容易。这真的很容易

<>编辑:我必须补充一下,我没有发现从C++访问QML对象是容易的。这是因为QML以少数数据类型的层次结构组织对象,您必须使用
findChild
或检查
objectName
动态发现子节点


无论如何,由于QML允许绑定属性,所以应该能够用数据创建一些C++类,并且在UI上访问它们不费多少力气;P>>P>我也经历过这样的情况:当你需要用C++来控制应用程序时,QML就不多了。最好的方法是通过WavigasePANE继承你的类,然后把逻辑放进你的第一页,使用<代码> qMLDATA::CREATE()如果您在导航表旁边有一些页面,请使用该页面并向该类添加一些方法,这些方法可调用

Q\u
并在您使用
QmlDocument::create()创建新页面时将setContext传递给该类以访问这些方法。。最后,永远不要忘记添加或处理
ontrasionend(Page*)
删除页面和释放内存的信号

简短回答:C++/QML集成非常好。有时可能非常冗长,但是在C++中没有什么是你不能做的。 即使在C++中做任何事情都是更快一点。BlackBerry正在推动用QML/Javascript编写所有UI工作流的想法

其优势在于业务逻辑和应用程序流之间的清晰分离。另一个优点是QML的编写时间较短,并且有望进行维护。不要忘记在C++中可以创建新的QML对象。
onTriggered: {
    var item = dataModel.data(indexPath);
    if (item.count > 0) {
        appLogic.updateFeed(item.id);
        navPane.push(resultPage);
    }
}

在我的应用程序中,我希望有以下体系结构。可能有一个导航窗格对象在C++中声明。然后根据用户的行为,我可能想添加页面到这个导航窗体对象——我想有C++类,它会关心添加这些页面,它会有方法:OpenStItPaseApple,OpenSuxsCudio等等。在QML中,我正在考虑实现这些页面的UI部分,但是我也想有相应的C++类,例如openSettingsPage.cpp,它将处理数据模型。但我也需要这些对象进行交互。你认为这可行吗?P.S.我同意FunHEAD方法,感谢对“绑定属性”的建议,我将进一步研究。是的,这是可行的:在C++中,用数据创建QObjt,使属性与QyLead可见,并将它们绑定到QML组件。你有很多选择。。。您可以为面板和页面创建QML组件,可以从QML本身生成页面,然后调用C++中的QML函数,或者在QML上拥有面板和页面,并通过C++完成所有的产卵和层次结构工作。