在公司折腾了3个月,我的工作内容终于确定下来了。Linux 嵌入式,QT embeded,偏上层。
我不知道在别的公司怎么样,我现在在的这个公司,喜欢把人当全才。其实也不是不好,但是我个人更喜欢,先专再泛,还好的是这个在这个公司不会很累,所以我也有时间弄弄自己感兴趣的东西。我所感兴趣的是,Linux 嵌入式,偏底层。
大四时才知道QT,(参加工作后觉得自己在大学接触的面太少了),现在综合各方面资料,大致了解下QT和我会很感兴趣的QT/Embeded。
博文内容都是网上搜集的,有点乱,而且不具权威性。由于QT几经转手,体系可能一直在变,目前QT属于Digia。
一、QT 简介
Qt是一个1991年由奇趣科技(TrollTech,挪威)开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。
Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
二、QT 版本及授权
开源版、专业版、商业版。
专业版和商业版比较见下图,开源版提供和商业版同样的功能。
Qt的授权是分为两条线, 商业版和开源版。 如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的;如果使用的是开源版的Qt,由于其使用的是GPL协议,那么可发出的程序也必须是GPL的。不过自从qt 4.5.0版本,诺基亚公司使用了LGPL协议,那么写出的程序就可以据为己有了!
Qt 的版本是按照不同的图形系统来划分的,目前分为四个版本:
- Win32版,适用于Windows平台;
- X11版,适合于使用了x系统的各种 linux 和 unix的平台;
- Mac版,适合于苹果MacOS;
- Embedded版,适合于具有帧缓冲(frame buffer)的linux 的平台。
三、QT 的强大
- 优良的跨平台特性:
- 面向对象
- 丰富的 API
- 支持 2D/3D 图形渲染,支持 OpenGL
- 大量的开发文档
- XML 支持。
四、QT Creator
Qt泛指Qt的所有桌面版本, 比如Qt/X11,Qt Windows,Qt Mac等。由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Qt都指用于Linux/Unix的Qt/X11。一般命名以qt-x11-opensource-xxx!
QT/E -> Qtopia-core -> Qt-embedded-opensource: Qt 在刚出现的时候,对于Linux和Unix系统,只有构建于Xlib之上的X11版。 但随着Linux操作系统在嵌入式 领域的应用日渐广泛,Qt推出了嵌入式的版本Qt/E。由于嵌入式受限的硬件环境往往难以运行庞大的X服务器,Qt/E去掉了X Lib的依赖而直接工作于Frame Buffer上,因而效率更高,但它并不是Qt的子集,而应该是超集,部分机制(如QCOP等)不能用于Qt/X11中。
Qtopia(注意不是Qtopia-core,两者是不一样的):一般命名为qtopia-opensource, 最初是sourceforge.net上的一个开源项目,全称是Qt Palmtop Environment,是构建于Qt/E之上一个类似桌面系统的应用环境 ,包括了PDA和手机等掌上系统常见的功能如电话簿、日程表等。现在Qtopia 已经成为了Trolltech的又一个主打产品,为基于Linux操作系统的PDA和手机提供了一个完整的图形环境。
值得特别注意的是 在版本4之前,Qt/E和Qtopia是不同的两套程序,Qt/E是基础类库,Qtopia是构建于Qt/E之上的一系列应用程序。 但从版本4开始,Trolltech将Qt/E并入到了Qtopia产品线中去了,并推出了新的Qtopia4。但实际上原来的Qt/E仍然作为基础类库,只是改名为Qtopia Core了,也许又感觉Qtopia Core跟Qtopia容易让人搞混,所以又改名为 qt-embedded-linux-opensource-linux/wince(QT也支持Wince )。 它 作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用 。而原来的Qtopia则被分成几层,核心的应用框架和插件系统被称为 Qtopia Platform,上层的应用程序则按照不同的目标用户分为不同的包,如Qtopai PDA,Qtopia Phone。
Qte的改名过程,Qte-->Qtopia Core-->Qt-embedded-linux-xxxx
这几个其实差不多是一个东西,名称很容易搞混。
记住在QT4版本前要安装Qtopia需要先装Qt/E,但之后的就不需要了。 Qtopia 已经带有QT/E库了 。
所以总的来说,QT也就三种:面向桌面的x11、面向嵌入式的Qt/E、以及面向嵌入式带各种应用程序的Qtopia桌面系统!!!