这篇文章包含了这个领域的很多开源项目的介绍,还有我多年来的心血和汗水
说实在的,QT确实挺强大的,
如果你有一个项目,需要跨平台GUI开发,你又有一个C++团队的话,
那么做技术选型的时候,可以负责任的说,QT是不二之选
我想说的是GTK+对windows平台的支撑力度实在是少的可怜
而且大部分常见的控件在windows上都没有
只知道它是在原生图形API上再做的包装,想想windows API搞出来的窗口有多古板,还是算了。
这个项目还是in progress状态。
总之,这两个项目都不能用于生产。
(我本想说,国内轮子兄...,但貌似他也已经肉身FQ了,再提国内也不对了)
gacui的原理我不太清楚,只知道有GPU加速。
在国内开发GUI应用程序,更多的还是给windows平台下的用户用
如果你想最大自由度的定制你的界面,又不想让你的程序的发型版看起来太大
那么duilib是个不错的选择,但duilib文档太少(作者自己也这么说),你要做足这方面的准备
好在是开源的,你C++够牛的话,也不用担心
当然如果你希望有完善的文档来给你提供帮助的话,
那么你可以选择Qt,毕竟是国外大厂商,源码、IDE、文档、社区都很齐全
但是Qt的依赖库库实在太多,你开发好的程序怎么着也得有个十几兆,才能分发给别人。
好吧,如果你足够厉害、有一台性能超赞的电脑、有一两个小时的时间,你可以尝试静态编译QT
如果你开发的GUI程序只给windows平台下的用户用
那么最最基本的三个选择:windows api、MFC、WTL
用windows api做GUI程序,比较辛苦,因为它就是一系列的API,所有的事情都得你自己来做
MFC是一套非常庞大的类库,他里面包含了一系列的C++的机制,用起来非常繁琐
WTL比MFC简单,比windows api易用,但资料很少
好,再来说用混合开发技术做GUI程序
这种技术方式的主要原理就是:
你写代码包住浏览器内核,
界面代码用HTML/CSS/JS完成(这是最大的优势,你可以用所有与之相关的库)
所有与界面渲染相关的事情交给浏览器内核完成,
所有与系统相关的事情你自己完成
这项技术在移动端用的挺好的,
如果你要做一个移动端的项目,又打算走混合开发这条路的话,
appcan很早之前了解过一点,貌似是收费的
PC端的混合开发就不那么火了,
但有很多大厂偷偷也在用这个技术,比如:鹅厂
如果你要做PC端的混合开发,
你有三条路可以走,
如果你要选用IE浏览器的内核,
那么你就不可能考虑跨平台的事情了,
而且,因为你的用户可能使用了不同的windows操作系统
所以你要做好客户端IE浏览器版本不一致的准备
IE6\7\8\9\10\11...
到IE9才可以称得上现代化的浏览器,市面上很多前端库,也只兼容到IE9
用IE内核来做这个事情的好处是:
你不用把浏览器的一堆DLL,分发给你的客户,这是其他三个方案所不能比的。
webkit和firefox真是挺尴尬的
性能表现没有谷歌浏览器好
平台支撑没有IE浏览器好
我对firefox浏览器的Gecko内核几乎没有什么研究
(之前做浏览器插件的时候看过他的API,现在几乎都忘记了)
Qt在去年之前还只有对webkit的封装
大家可以研究一下,但请不要用于生产,我已经不再维护这个库了
终于说到谷歌浏览器的内核:chromium
我实在是不建议直接研究它
这个项目是用C++对chromium做的包装
如果你是C#开发人员,也想用CEF的话,
这三个项目我都用过,目前的状况来看,我推荐最后一个
<a href="http://www.cnblogs.com/liulun/p/4470577.html" target="_blank">我曾经写过一系列的文章来介绍这个东西</a>
你如果是一个JS开发人员的话,
有我nodejs的庇佑,你完全不用care CEF这种东西
这个东西,我也用过,
除了nodejs带来的那些缺点,
他几乎是完美的,非常不错,推荐使用
还想再多说一些,但忽然发现,篇幅已经太长了,借曹雪芹的一首诗止笔:
满纸荒唐言!一把辛酸泪!一把辛酸泪!一把辛酸泪!.......