用于GUI的Qt Designer C++或QML

cle*_*emt 49 c++ user-interface qt qml

我知道在QT中使用QML是一个很新的东西,我想知道是否应该使用QTDesigner或QML设计我的应用程序.我将使用MVC模式和我主要担心的是,如果我在GUI中使用QML,那么在我的C++应用程序的reste中集成它可能并不容易.

请随意提出您的个人建议,我将不胜感激.谢谢!

Ste*_*e S 46

QML主要用于移动平台.由于其年轻和对各种平台接口约定的关注,它缺乏按钮和组合框等标准控件(但请参阅组件项目).如果您使用的是移动设备,或者您的UI需要高度自定义的视觉风格,那么QML 可能值得考虑.准备好在设计自定义控件时进行大量额外工作.在我看来,集成QML和C++仍然非常粗糙.我个人建议仅将QML用于更简单的应用程序,仅在移动平台上使用,并且仅使用JavaScript.在适当的情况下,我可能会考虑用C++编写自定义QML元素.

Qt的C++ API不会很快消失.它的设计也考虑到了桌面,并且可以更好地满足用户对桌面平台的期望. 如果您在桌面上,我建议坚持使用C++和Designer. 即使在QML成熟之后,它也可能不适合大多数桌面应用程序.

更新!

事情似乎开始发生变化.我自己还没有尝试过这些新组件,文档看起来有点稀疏(或者至少不在其中),但这最终可以消除在桌面上使用QML的最大障碍.这是否会得到长期支持还有待观察,但如果您愿意接受早期采用者的风险,我认为QML现在可能是桌面应用的可行选择.

  • 我认为QML是WPF/XAML的跨平台(并且更具可读性!)版本.什么都没有让它具有移动性. (9认同)

小智 15

值得尝试一些QML来测试它是否适合您的需求.

如果您正在构建具有动态界面和动画的高度自定义UI,那么QML适合这项工作; 如果您正在构建传统的桌面应用程序,那么您可能希望坚持使用Qt C++ API.

关于QML和C++之间的集成,QML旨在与C++代码轻松集成,许多QML应用程序使用某种C++后端.将C++对象注入QML接口或在C++中编写自定义QML元素非常简单.请查看http://doc.qt.io/archives/qt-4.7/qtbinding.htmlhttp://doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.html.


Dan*_*man 13

上述答案遗漏的一件事是QML对业务逻辑(如果需要)具有JavaScript的额外优势/劣势.我目前正在为桌面构建一个(小到中)大小的应用程序,现在我的(2)alpha用户喜欢它.我对框架的表现力以及我能够多快地得到它并进行测试印象深刻.总而言之,我发现使用它比使用RAD编辑器(设计师)更快,并且我喜欢在我的UI上使用JavaScript作为后备,当我做徘徊/验证等烦人的事情时......

我认为这与你对语言的舒适程度有关.如果C++是你的"转到"语言,那么你可能会偏爱设计师.如果你是来自Web(坦白,我是一名Java EE工程师/ MVC .NET开发人员做了很多前端),你会发现它令人耳目一新.

它还允许用户期待的一些响应.总的来说,我给它一个巨大的优势.尝试一下 - 在相同的时间范围内,你可能会非常讨厌,而且很生气.我仍然对一些事情(特别是FileIO)感到生气,但我一直很喜欢桌面上我很少做的事情.