QT与VC的区别

 

QT与VC的区别


1. QT和VC目前最大的不同就是消息的管理

  VC的不同对象之间发送消息是对象A发送一个消息给对象B就不管了,至于B对于此消息该什么响应函数来处理,由对象B自己定义的消息处理函数来响应;

  而QT中,必须有一个平台来管理A-->B这个过程,它需要知道A发生了什么消息(signals),传给B后,还要通知B用什么消息处理函数(slots)来处理。

2. 在有自定义消息处理的类中,必须用这样的结构

  Q_OBJECT //这种signal-slot结构必须使用的宏
  public slots:
  signals:

3. 当一个.h文件中申明一个类的变量,而这个类已经在其他文件中定义好了时,可以只把这个类的头文件只包含在该.h文件对应的.cpp文件中,而在该.h文件中只需要用一句class ClassName再申明一次就可以了,考试,大提示这样可以提高编译速度

4. 在头文件中可以用下列一组宏来防止该头文件被包含多次:(具体用法还要再查查)

  #ifndef LCDRANGE_H
  #define LCDRANGE_H
  . //头文件内容开始
  #endif


简单说说我的看法!
####################################################
确切说应该比较的是QT和MFC两个界面库
QT使用的编译器是MinGW,即Linux下的GCC移植到windows的版本,MFC使用的编译器是Visual C++

QT的应用主要在Linux下,但是它本身是跨平台的,也支持其他操作系统,是现在比较著名的界面库,著名的KDE就是使用QT开发的

MFC是提供给VC的,但是它主要是代码库,不像VCL和编译器挂钩很多,但是MFC主要是对windows API的封装,所以只能用于windows平台

根据你所说的方面,简单比较一下:
1.开发速度
        整体来说可能MFC会快捷一些,因为windows平台的开发工具大多很智能,因为立足于windows的开发人群很广,从菜鸟到专业人士,但是QT由于基于Linux,可用的开发工具不多,大都比较专业,多是第三方产品,而且集成度不大,第三方库也没有MFC的多,从这一点MFC略胜一筹,但是QT自从被Nokia收购后,官方发布了跨平台集成开发环境QTCreator,所以之后走向就不好说了,个人总体感觉QT Creator和VS.net差距比较大,还需改进

        但是从库本身来说QT集成的功能较MFC庞大,而且使用的封装技术信号和槽也是比较受到赞许的,比如QT Script为QT提供嵌入式脚本,QT界面库支持CSS,所以QT做出来的界面比MFC要好,而且比较容易,MFC就需要借助第三方库了
        因为MFC是浅层封装(最新的2008 sp1加入了BCG的高级界面库,可能有所改善)windows SDK,以降低使用windows SDK引起的开发效率的降低,和开发难度的增加
所以QT库是比MFC优秀的,两个库都经受了时间的考验,稳定性都很高,Bug几乎没有

2.运行效率
        MFC由于其浅层封装的特点,所以运行效率是比较高的,加上vc对windows的针对性优化,整体性能是比较高的,但是如果加入第三方库就不敢保证了

        QT因为库比较庞大,封装层次较深,所以运行效率较MFC为低,但是在现在的机器配置下,C#大家都不介意了,这些会引起人们的介意吗?

3.应用范围,现在windows的普及范围谁能比过,所以MFC的客户量比较多,QT主要是Linux下的开发人员在使用,但MFC也只是得益于windows(感觉又是一次捆绑战略)

MFC不支持嵌入式开发(主要指手机平台),但是QT有对应的模块,但是现在Java的天下又有谁能撼动?

4.学习难度
        QT的封装哲学比较明晰,和系统隔离的比较好,所以个人感觉门槛不高
        MFC较难精通,因为深入开发之后SDK还是要了解的,否则程序感觉比较儿童化,呵呵

        如果你要选择工作的方向,就现在来说基于vc的开发是比较多的,所以就业比较好
        Linux下的QT开发的就业情况还有待提高,但是专业方面,比如企业级的开发,或者涉及了Linux系统,QT还是可以的

 

这是我的一点见解,主要是自己的感觉,希望对你有所帮助!

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mingw版qt是一种开发工具集,用于使用mingw编译的C++代码开发跨平台的应用程序。而vc是指微软的Visual C++,是另一种C++编译器。 要使用mingw版qt调用vc动态库,需要满足以下条件: 1. 确保vc动态库是与mingw兼容的。由于mingw使用了自己独特的标准库和ABI(Application Binary Interface),所以vc动态库也需要使用兼容的标准库和ABI。否则,在调用vc动态库时可能会出现兼容性问题。 2. 在qt项目中添加vc动态库的引用。在.pro文件中使用LIBS关键字,指定需要链接的动态库文件。例如,LIBS += -L/path/to/vc-lib -lvc_lib。其中,/path/to/vc-lib是vc动态库所在的路径,vc_lib是动态库的名称。这样,qt编译器会从指定路径下链接vc动态库。 3. 设置vc动态库的搜索路径。如果vc动态库不在默认的系统路径中,需要将其所在路径添加到系统搜索路径中。可以通过设置PATH环境变量实现,或是在程序中使用QCoreApplication::addLibraryPath()函数指定搜索路径。 4. 在代码中正确调用vc动态库的函数。首先,需要包含vc动态库的头文件,并正确使用其所提供的函数。其次,需要确保传递给vc动态库的参数类型和数量与其期望的相匹配。否则,在运行时可能会出现链接错误或崩溃。 需要注意的是,因为mingw和vc使用不同的编译器和标准库,所以在混合使用mingw版qtvc动态库时,需要格外小心兼容性问题。最好使用相同的编译器或工具集进行整个项目的开发,以避免潜在的兼容性和链接问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值