对比一下Visual C#设计界面的Event/Handler关联器: 是否很是神似?当年Visual Studio 6.0跟MFC就提供了类似的事件-处理函数钩连工具,如今开源软件也提供了,并且更为强大易用。 除了Qt Creator,Qt的窗体设计器(Qt Designer)还可以作为插件,在别的IDE下使用。例如,可以插入Netbeans、Visual Studio和Eclipse。至今,插件仍然有一定的问题,例如Socket/Slot关联器,在ubuntu 9.10 + Netbeans 6.8的搭配下,Signal/Slot关联器无法使用,而在Windows 7+Visual Studio 2008 SP1下正常。 为了开发多语言程序,Qt提供了Qt Linguist,可以方便地编辑多语言资源。 内存管理 可能是出于对嵌入式应用的性能考虑,现在版本的Qt并没有集成功能非常强大的(类似于Java或.net的)垃圾收集器,但是也不用在内存管理上太过费心。Qt中大部分widget都从QObject类继承而来,而QObject有一个上级对象的属性;当上级对象(如窗体中按钮的上级对象是窗体)退出内存,Qt内置的机制会将所有下级对象一起销毁。如果在上级对象未退出内存的时候需要删除下级对象以释放内存,则可以调用freeLater( )函数来释放。当然,像传统的C++一样,Qt不解决野指针陷阱,对象删除后的指针需由程序员自己消灭或者另赋他址。相比于MFC的内存管理,Qt的内存管理已经相当人性化,期待下一个版本加入内置的垃圾收集器,让程序员可以选择由垃圾收集器收集内存空间。 跨平台开发 Qt开发的程序都是跨平台的,可以在Windows、FreeBSD、Linux(X11)、MacOSX四大主流桌面平台上运行,还支持Symbian、Embedded Linux、WinCE、Maemo四种嵌入式平台,而OpenSolaris、iPhone OS、Android、Amazon Kindle平台的开发也正在进行中。 Qt Creator本身可以在Windows、Linux(X11)、MacOSX上运行。 授权 Qt主要以三种协议发布:GPL、LGPL和Commercial。三种协议的代码相同,只是协议不同而已。GPL就不用说了,LGPL协议允许基于Qt开发开源或闭源/商业软件;Commercial协议需要花钱从Nokia购买,每开发者授权价格在2000美元之下,附加一年的技术支持;只有在需要对Qt本身进行修改,并且修改的部分不能开放源代码的时候,才有必要采用Commercial协议。因此个人和小企业开发者使用Qt绝大部分情况是不要钱的。 |