1

Qt 中的大多数类都有一个默认构造函数。许多类将QObject*orQWidget*作为构造函数参数,并带有默认值nullptr。该类QAction也有这样一个以 aQObject*作为参数的构造函数,但没有默认值。因此,QAction不是默认可构造的。这是为什么?QAction真的需要父母吗?或者还有什么不同的地方QAction可以解释这种不一致?

4

1 回答 1

3

这里只是一个猜测,但我会说它背后没有理由。

在 Qt 4.8 中,签名是(如您所提到的)没有父级的默认值。

QAction(QObject * parent)

http://doc.qt.io/qt-4.8/qaction.html

这在 Qt 5.7 中发生了变化

QAction(QObject *parent = nullptr)

http://doc.qt.io/qt-5/qaction.html

所以我认为这是一个偶然的不一致,最终在 Qt 5.7 中得到了修复。

于 2016-10-11T08:37:10.407 回答