Qt5对Qt4的模块进行了重构,最明显的是对Qt Gui模块的修改,在Qt 5 中,Qt Gui不再包含有关界面的所有类。所有的图形界面程序需要的QApplication以及最重要的基类QWidget已经不在Qt Gui模块中,而是被重新组合到了一个新的模块Qt Widgets中。Qt 5的一个重大更改就是重新定义了Qt Gui模块,它不再是一个大而全的图形界面库,而是为各种图形用户界面组件提供一般的处理,包括窗口系统集成、事件处理、OpenGL和OpenGL ES的集成、2D绘图、基本图像、字体和文本等内容。Qt 5将以前的Qt Gui模块中的图形部件类移动到了Qt Widgets模块中,将打印相关类移动到了Qt PrintSupport模块中。
此外,Qt 5移除了Qt OpengGL模块,将OpenGL相关类移动到了Qt Gui模块中。
此外,QtCore也做了很大更新:
(1)Qt 5巧妙地利用C++的函数指针,为信号槽连接提供了编译期类型检查,同时还减少了信号槽的限制,在Qt4中,只有类的非静态成员函数才允许作为槽函数,但是在Qt 5中,所有函数,包括全局函数,静态函数,甚至匿名函数,都可以作为槽函数。
(2)Qt 5中包含了一个JSON解析器。随着Web2.0的星期,JSON正在取代XML成为新一代数据交换格式。Qt 4中需哟使用第三方库才能方便解析JSON,而Qt 5则直接内置对JSON的支持。