当前位置: 代码迷 >> QT开发 >> Qt和MFC的区别?该如何解决
  详细解决方案

Qt和MFC的区别?该如何解决

热度:374   发布时间:2016-04-25 05:12:35.0
Qt和MFC的区别?
最近在自学Qt,对信号和槽这类型的概念觉得很新颖。但很想知道这个概念在MFC中也适用吗?(我完全没看过MFC)Qt和MFC在编程理念上差距有多大?他们对界面的实现方式是接近的吗?

我估计要好好把QT学好了才会接触MFC,但是很想提前知道这两者的相似程度,最重要是界面的实现,消息的传送方面的思维接近吗?还是说相距很远?请高手解答!十分感谢!

------解决方案--------------------
Qt入手并不算难,有一些C++基础就更好,没有也行。

但要想精通Qt,则比MFC要难,因为它的实现机制实际上封装的很深,不容易搞懂。

而MFC的机制,基本上大家都摸清了,市面上的一些不错的书也会梳理出来。

我的建议是,无论什么平台,都使用Qt,这样就强迫自己把它学好吧。

看看这个:《我看Qt和MFC的学习难易度比较》
http://blog.csdn.net/qter_wd007/archive/2010/03/31/5439095.aspx
------解决方案--------------------
有些人说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就轻松很多了。
我是非计算机专业的,个人感受,仅供参考,呵呵。

------解决方案--------------------
Qt和MFC是完全不同的两个东西,我个人觉得没什么可比性
至少学习嘛,也看不出先学一个后再学另一个会更有优势
不过学习Qt对于你的设计思想会更有帮助,学习MFC对于你学习C++的那些基础知识很有帮助
  相关解决方案