其实自己在用qtcreator开发有很久了,只知道怎么去使用deisgner设计界面,怎样用assistant手册查询自己需要的知识解决项目上需要完成的问题,并没有去真正的去了解这个qt底层是调用什么;在window和linux、android、ios等操作系统都可用他开发出想要的东西,感觉强强的。。。,今天在家学习,顺便了解了qt在不同的平台做的qt,底层调用的接口get点东西,记下来
很多人都知道,平台不同,开发图形界面时调用图形界面的接口也不同;对于现在很多软件公司想做的产品都是跨平台的,可想对公司来说就得投入更多的人力和时间开发不同的平台的产品;而qt就可以做到(当然还有别的IDE),qt的价值主要在跨平台上,能在不同平台调用不同的接口,一套代码可以在不同的环境编译运行,得到的图形界面一样,主要是qt在应用程序之下,图形设备接口之上做的这么一个软件;个人觉得qt的存在主要用途还是在图形界面这块;和vs里的界面设计一样方便,拖拽几个控件就可以看到效果,当然qt做别的模块也很方便。
qt之所以可以跨平台,是因为在不同的平台调用该平台的接口,比如在window中使用的qt IDE,和MFC的级别相匹配(MFC 微软基础类库 Microsoft Foundation Classes ,以C++类的形式封装了Window API并包含一个应用程序框架,减少开发人员的工作量),他们底层调用的接口都是win32 API的接口,说到win32 API也就是 Microsoft 32位平台的应用程序编程接口(Application Programming Interface).所有在win32平台上运行的应用程序都可以调用这些函数;这里面都是C接口的函数,接口太多了,比想象中的多;win32底层调用的是GDI接口(接着说说GDI:图形设备接口 Graphics Device Interface,主要任务是负责系统与绘图程序之间的信息交换,处理所有window程序的图形和图像输出,开发人员无需关心硬件设备正常驱动,就可以将应用程序的输出转化为硬件设备上的输出和构成),大概就是这几层的关系了。
在linux/unix中,qt的底层调用GTK(GIMP Toolkit是一套源码以LGPL许可协议分发,跨平台的图形工具包。最初是为GIMP(GNU Image Manipulation Program)写的,已成为一个功能强大,设计灵活的一个通用图形库,也有很多平台版本),在GTK的底层是 X Window(X Window图形用户接口,是一种计算机软件系统和网络协议,提供了一个基础的图形用户界面和丰富的输入设备能力联网计算机其中软件编写使用广义的命令集,它创建一个硬件抽象层,允许设备独立性和重用方案的任何计算机实现,最初是1984年麻省理工学院的研究成果,之后变成UNIX 、类UNIX、以及OpenVMS等操作系统所一致使用的标准话软件工具包及现实框架的运作协议)
在IBM计算机里面底层调用的是Motif(Motif 最初是由 OSF(开放基金协会)开发的一个工业标准的GUI(图形用户接口)。1996年,OSF 与 X/Open 合并为 Open Group,1997年初,X 联盟结束,并将其归属的项目移交给 Open Group。Open Group 继续开发和支持X窗口系统,Motif,CDE,和其他技术。2000年5月15日,Open Group 使用公共许可证向开放源代码团体发布了 Motif 的源代码。在开放系统(如Linux)上,可以使用免费的 Motif),在Motif下面好像也是X Window;