Почему QAction не имеет конструктора по умолчанию?

Большинство классов в Qt имеют конструктор по умолчанию. Многие занятия занимают QObject* или же QWidget* в качестве аргумента конструктора со значением по умолчанию nullptr, Класс QAction также имеет такой конструктор, принимающий QObject* в качестве аргумента, но нет значения по умолчанию. Следовательно, QAction не является конструируемым по умолчанию. Это почему? Делает QAction действительно нужно иметь родителя? Или есть что-то другое в QAction что объясняет это несоответствие?

1

Решение

Просто предположение здесь, но я бы сказал, что нет никаких причин для этого.

В Qt 4.8 подпись (как вы упомянули) не имеет значения по умолчанию для parent.

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.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]