Qt和MFC的区别?该如何解决
发布时间:2010-05-30 21:34:31 文章来源:www.iduyao.cn 采编人员:星星草
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++的那些基础知识很有帮助
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Qt Creator 2.1 Beta 2 和Qt 4.7.1 发布
转载:http://www.cmdn.net/news/1148
诺基亚发布了Qt框架的跨平台开发环境(IDE) –Qt Cre...
-
Qt菜单的显示问题
我的是在ubuntu11.10虚拟机上运行的qt creator4,现在刚入门,按照http://www.yafeilinux.com/?p=30的例子添加菜单...
-
'make' 不是内部或外部命令,也不是可运行的程序或批处理文件?
根据HTML code
http://v.youku.com/v_show/id_XMTA1NDEzODUy.html
的...
-
visual studio 2010编译qt的demo无法运行,求教。
安装的qt-win-opensource-4.8.0-vs2010.exe和qt-vs-addin-1.1.10.exe
然后想运行...
-
QT,'HANDLE'没有命名的一个类型
网上说QT是,一处编写,处处编译,可是我在windows下写好了串口通讯程序,在linux下编译时,却提示'HANDLE'...
-
关于QT的授权
一直都没搞懂QT的商业授权是怎么回事,请问如果我用QT在电视机机顶盒上开发一款基于QT的播放器,如果我没有获得商业授...
-
有关QTable制作表格保存问题
我使用的是QT2,需要制作一个表格,然后输入数据后保存。我源码在以下网址,set.zip压缩包中http://www.qt...
-
Qt怎样禁止用户最大化窗口
用Qt写一个窗口,如果继承QDialog,那窗口就只有关闭按钮,如果继承QWidget,那么就有关闭,最大化,最小化三个按...
-
QT4.4.3版本窗体透明后界面失去焦点无法响应键盘事件
用的是Qt4.4.3版本,窗体透明的方法如下:
C/C++ code
QPalette pal = pale...
-
QT4下载到开发板的问题
友善的2440开发板,按照一些教程装好了QT4在Linux下的开发环境。
用NFS启动开发板,把arm版编译出来的应用程...