几年以前使用过QT3, 现在新项目需要使用QT, 又重新开始QT的学习, QT4相对3还是有很多变化的,特别是增加了很多工具库. QT不愧为一套优秀的开发库, 现在的QT已不仅仅只是界面库, 非界面的底层功能QT以有很多的支持.
QT4新特性:
Tulip: 一组新的模板类容器及算法,QList, QVector, QStack, QQueue, QMap, QHash,
QSet等,新的迭代器,相比STL具有良好的使用语法, 空容器不占用内存, 支持在线程问安全
的复制容器.
Interview: 一组model/view架构的控件,提供一个通用的方法来分离显示视图和控制部
分.QStandardItemModel, QDirModel, QStringListModel等.
Arthur: 新的绘图系统(QPainter族), QPainter执行绘制操作, QPaintDevice描述了一个设备能否
为QPainter提供绘制支持, QPaintEngine为QPainter在不同的设备上绘制提供统一的接口,
QPaintEngine只由QPainter和QPaintDevice内使用, 当前的QT支持在下列平台上绘制(位
图方式; OpenGL; PostScritpt(Linux,unix, Mac); QuickDraw,CoreGraphics(MAC);
X11,X Render(linux,unix));
要支持新的设备,你只需要从QPaintEngine派生并实现相应的虚函数.
QT绘图的新特性, Gradient Brushes(可变角度画笔); Alpha-Blended(Alpha通道混合
(QColor中指定);QGLWidget部件(能使用OpenGL绘图); Anti-Aliased Edges(反走样
边缘,XRender除外); Painter Paths(路径绘制); Widget Double-Buffering(双缓冲默
认支持,可能单独关闭);Pen and Brush Transformation(完善中); Custom Filled Pens;
QImage像素化的绘制设备(平台无关);SVG Rendering
Scribe: 重新设计的文字渲染和布局系统; 为文本编辑提供更加方便的接口.
Mainwindow: 应该程序主窗口,包括了工具栏,菜单, 窗口停靠等.
New Qt Designer: 新的界面设计器.
QtScript: 在应用程序中支持脚本功能.
D-Bus: IPC和RPC支持.
QtNetwork: 网络支持模块.
QtSql: 数据库支持模块
QtXml: Xml支持模块.
QtTest: 自动测试工具
QtWebKit: 支持QT API的浏览器引擎.
Concurrent: 集成的多线程支持.
其它:
部件名字: QT虽然承诺Widget的名字会很重要,但从V1版到现在似乎都没有实现.
类型转换: QT4 提供了qobject_cast<>() 支持QObject子类间的安全的类型转换, 不同于C++
的dynamic_cast的是,它可工作在RTTI禁止时,和穿越DLL边界安全工作.
智能指针: 针对QObject子类的智能指针(QPointer<T>).