用qt很久了,但是一直没有注意到一个叫做qml的东西,今天google了一下,总结一下我的理解。
从表面上看qml就是用css javascript那一套来做软件的GUI,和原来的C++的widget之类的完全是两个独立的系统,它比较适合做一些简单的纯粹GUI的手机应用,对于复杂的应用比较费劲,比如如果牵扯进去数据库的交互,多线程的加速等等,用qml来做很不成熟,除非对软件做一个很清晰对client server架构对切割处理,但是这个对一个简单的desktop应用显然有点小题大做,本来一个指针可以做到的事情现在却要用一些通信协议才能完成,太浪费资源。另外qml作为GUI的定制性质比较强,复杂的control要自己从头设计,这个成本可能比较高,当然也会找到很多现成多,但是这显然不比系统自然集成的widget。
总结一下,qml看起来就是一个很美的梦,有着很好的架构,但是牵扯到实际到应用由于环境很复杂,这么完美东西到了现实的世界就有些不太适应了。
最后附一些qml的学习文章
http://qt-project.org/doc/qt-4.8/qml-intro.html
http://stackoverflow.com/questions/4610073/qt-designer-c-or-qml-for-gui