Qt学习之路(1):前言
我们所利用的Qt,确切地说也就是它的GUI编程部门。C++的GUI编程同Java差异:GUI并不是C++尺度的一部门。所以,假如利用Java,那么你最好的选择就是AWT/Swing,可能也可以使SWT/JFace,可是,C++的GUI编程给了你更多的选择:wxWidget, gtk++以及Qt。这几个库我都有打仗,可是打仗都不是许多,只能靠一些资料和本身的一点粗浅的认识说一下它们之间的区别(PS: 更详尽的较量在前面的文章中有)。
首先说wxWidget,这是一个尺度的C++库,和Qt一样复杂。它的语法看上去和MFC雷同,有大量的宏。听说,一个MFC措施员可以很容易的转换到 wxWidget上面来。wxWidget有一个很大的利益,就是它的界面都是原生气势气魄的。这是其他的库所不能做到的。wxWidget的运行效率很高,听说在Windows平台上比起微软自家的MFC也八两半斤。
gtk++其实是一个C库,不外由于C++和C之间的干系,这点并没有很大的干系。可是,gtk++是一个利用C语言很优雅的实现了面向工具措施设计的典型。不外,这也同样带来了一个问题——它的内里带有大量的范例转换的宏来模仿多态,而且它的函数名“又臭又长(不外这点我倒是以为无所谓,因为它的函数名固然很长,可是同样很清晰)”,利用下划线支解单词,看上去和Linux如出一辙。由于它是C语言实现,因此它的运行效率虽然不在话下。gtk++并不是模仿的原生界面,而有它本身的气势气魄,所以有时候就会和操纵系统的界面显得扞格难入。
再来看Qt,和wxWidget一样,它也是一个尺度的C++库。可是它的语法很雷同于Java的Swing,十分清晰,并且 SIGNAL/SLOT机制使得措施看起来很大白——这也是我首先选择Qt的一个很重要的方面,因为我是学Java身世的