几个c++界面库的比较

有些人说QT比MFC简单,QT封装得太好了,给初学者错觉,QT很简单。QT实现的功能比MFC更多(多到有些时候你觉得QT真TM啰唆,但是有时又体会到他啰唆得很强大很有柔性),显然比MFC代码更多,运行效率更低。但是那么多功能你要去学怎么用,有些时候还要去想他是怎么实现的,同样麻烦。QT几乎每个类都有 privat 数据类。它只提供public类给你用,而且帮助文档也只有public接口类的说明。有些时候要弄清楚,不得不看源文件。就连QT最出名的SIGNAL/SLOT机制,有多少初学者能知道SIGNAL是protected的,所以不能在类外emit。SLOT是用类自己的函数qmetacall调用,所以不管是public protected private都能接受外部信号,的啊。
QT用着很happy,但是缺点是基础资料太少了,底层的东西QT资料几乎不提,出了问题你几乎只有发呆。QT区很多朋友,用到是在用,界面等也编得好看,但是基础确实不牢靠,甚至很多基本的C++问题也在问。因为他们觉得QT是简单的,不用打好基础。但是在QT资料里面几乎没有基本知识。。
MFC /OR VC++(WIN32) 这个就不一样了,看着挺痛苦的,但是资料一大把。特别是基础知识。所以都说学会了MFC的人去学QT简单很多的原因。比如孙薪老师的那个系列。这样对事件循环等有较为深刻的认识。缺点就是MFC入门台阶太高了,有点混乱。还有什么候杰的深入浅出MFC,把RTTI等等东西写的非常清楚。这些东西就是QT里面的metaobjet。
所以我觉得:
1、如果你基础不怎么样,比如刚学了C++想找个GUI库来玩,也只是随便玩玩,QT包装很好,帮助文档也很好。你就直接用QT,反正出了某些奇怪的问题,也没关系。。
2、如果你是想学好,想学得稍微深入,我觉得QT就很难。还是先学VC的东东吧。学好了基础再用QT。QT的开发效率高是针对会用的人而言的。
3、如果有高人指导,或者环境很好,或者只用QT的很小一部分,那学QT就轻松很多了。


做UI不是MFC的强项,可以用qt或者Duilib以及winform,WPF来实现
如果不想安装几十M的.net framework安装包,可以用Duilib.
不过qt生成的文件比较大,个人倾向用Duilib.
qt的优势是跨平台。

原文地址:https://www.cnblogs.com/poissonnotes/p/4367822.html