Qt乱谈

目录

什么是Qt?

C++

跨平台

开发框架


Qt,一个神奇而又强大的库,凝聚了大量攻城狮的心血与智慧。一个技术的了解,我们通常是了解他能做啥,然后是怎么做的。下面我们先来了解下Qt能做啥。先来段维基百科的解释:

什么是Qt?

Qt是一个面向桌面,嵌入式和移动的跨平台应用程序开发框架支持的平台包括Linux,OS X,Windows,VxWorks,QNX,Android,iOS,BlackBerry,Sailfish OS等。

Qt本身不是一种编程语言。它是一个用C ++编写的框架。预处理器MOC(元对象编译器)用于扩展C ++语言,具有信号和槽等功能。在编译步骤之前,MOC解析用Qt-extended C ++编写的源文件,并从中生成符合标准的C ++源代码。因此,框架本身和使用它的应用程序/库可以由任何符合标准的C ++编译器(如Clang,GCC,ICC,MinGW和MSVC)编译。

提炼几个关键词:Qt是一个跨平台的C++开发框架。我们依次聊下这三个关键词:C++、跨平台、开发框架。

C++

C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。然而,系统中的一些事件处理很容易破坏面向对象思想(可参考MFC、wxWidget等的事件处理)。而Qt的做法是使用信号槽机制,完美解决事件处理与面向对象代码的问题。

跨平台

跨平台一直是Qt的重点,很多程序开发都只是把Qt作为跨平台的GUI开发库。其实Qt能做的远不止这些。

Qt的跨平台不同于Java的跨平台。Java跨平台的原因:半编译,半解释,一次编译,到处使用。而Qt跨平台是一次编写,到处使用,即Qt代码可以在各个平台编译,但也需要在各个平台编译一次。Qt跨平台的实现就是用。简单的说就是将各个平台的接口都封装起来,然后用宏判断当前是什么系统,哪些代码需要参入编译。

既然Qt把系统接口都封装了一遍,那么Qt能做什么就好说了。系统能做的Qt都能做。来一张图说明Qt能做啥,后面的数据是对应《C++ GUI Qt 4 编程》的章节。(如有遗漏或错误,欢迎指出)

 

开发框架

框架,呃,这个怎么说呢,只可意会不可言传。以后有想法了再补充吧。

不过Qt的面向对象思想真的很到位。看看Qt的源代码,或者仅看下头文件给出的接口设计就能有些收获。

学习都是从模仿开始。尝试写写Qt风格的类吧。

最后来看看Qt框架的扩展

Qt的扩展主要是插件。同时对于脚本的支持也让它有能快速应对复杂业务场景的能力。

Qt的插件实现技术就是动态库的动态加载。

它支持多种类型的插件 (分类很重要。没分类的库多了灵活性,但同时也多了耦合性)

主要有:UI插件、样式表插件、数据库插件、图片插件等。插件让Qt功能更强大,也更灵活。

同时也可以自定义插件以实现一些业务需求。

 

 


盗张图对一些跨平台库对比:

summary

再来个别人的对比链接:https://blog.csdn.net/guoxiaoqian8028/article/details/18772273

发现wxWidgets运行速度比Qt快,我都想去尝试一下了 >_<


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值