Qt小部件4.7与5.1

问题描述:

我最近开始一个新项目,我们将使用Qt创建GUI。没有深入细节,管理层已经要求我们使用Qt 4.7。这个决定没有正当的理由。我们没有将任何现有代码移植到Qt 5,这是全新的实现。我是该项目的UI主管,我需要提供一个使用Qt 5.1的案例。Qt小部件4.7与5.1

我将解释为什么一些工程师关于迁移到5.1的担忧是不合法的,但我还想通过给出具体原因来强化我们的案例,即我们应该使用4.7以上的Qt 5.1。我想要使​​用5.1的主要原因只是它是最新版本,其中4.7版本有很多改进。虽然这个原因是有效的,但是如果有人熟悉Qt 4.7+和5.0+之间的差异,会让我想出一些具体的原因,我将不胜感激。我自己还没有用过Qt 5。我们将以任何方式使用小部件,而不是QtQuick/QML,因此请仅考虑与Qt小部件有关的差异。

+1

将Qt的网站[**表明这个** ](http://qt-project.org/doc/qt-5.0/qtdoc/whatsnew.html)。最值得注意的是“编译时检查信号插槽连接”以及各种新的OpenGL钩子。 – frsfnrrg

Qt 5.1在Qt 4.7或4.8上有几个新特性。一个我想重要的是对信号和槽,这将提供新的语法:

  1. 的信号和槽的存在,编译时间检查,该类型的,或者Q_OBJECT丢失,这意味着你如果拼错了信号或插槽名称,或者插槽的参数与信号中的参数不匹配,将会出现编译器错误。这可能会为您节省一些时间,而您正在进行重新分解并更改信号或插槽的名称或参数。
  2. 可以连接到QObject的任何成员函数,而不仅仅是插槽。
  3. 新的语法甚至可以连接到函数,而不仅仅是QObject。

它还提供了C++ 11

一些新的支持更多检查这些:

http://woboq.com/blog/new-signals-slots-syntax-in-qt5.html

http://woboq.com/blog/cpp11-in-qt5.html