无法逃避的命运----C++ GUI Library随想!

来源:互联网 发布:内涵 源码 编辑:程序博客网 时间:2024/05/04 15:26
MFC是一个变态的Application FrameWork,我总是想逃避他,寻找一个替代品来做为C++ GUI Library,但总是事与愿为。
当今世界比较流行的,我所知道的GUI Library有以下各个:
1、QT   2、Wx Window   3、Fox-Toolkit  4、FLTK
5、WTL  6、Smart Win++  7、GTK     8、VCL
依照它们的特性我将其分为以下3类
A类MFC类:它们的特点使用大量的宏(Macro)来实现了RTTI,Dynamic Creation,Message
mapping,虽然语法丑陋但兼容性很好,且效率比较高。Fox-Toolkit,WxWindow都属于该类。
B:语法扩展及工具辅助类:这类库的特点是语法比较优雅,可读性强,容易学习,但这些
是基于对C++语法的扩展(比如VCL),或使用特此
工具对源程序进行预处理(QT),这是一把双刃剑,你得到了便利,但失去了兼容及扩展性
;在VCL,发自内心来说,VCL是使用最完美的Application Frame,但它基于Object
Pascal语言而言,移植到C++就有了很多问题,我最怕的就是莫名其妙的错误提示,让你手
足无措。
C:基于template 多继承等C++现代特性的库比如WTL, SmartWin++还有一些其他试验性质的库,使用这种库的首要条件就是你的编译器能够现代,其二就是错误如天书一般,这好多是所有template库的通病,其
三就是效率低下的问题,虽然问题很多,但不可否认,一个类的STL的GUI Library是每个C++er的梦想。