При добавлении QAction * в QMenu, который несет ответственность за удаление объекта QAction *? Я не мог найти это в документации для QMenu или QAction.Собственность QAction
void MyClass::contextMenuEvent(QContextMenuEvent *evt)
{
QMenu menu(this);
QAction *a = new QAction(tr("Some action"), this);
menu.addAction(a); // who owns a?
menu.exec(evt->globalPos());
}
Qt Menus example не удаляет любые действия, которые она создает, так я предполагаю, что QMenu становится владельцем QAction. Это верно?
Спасибо. Ваш ответ неоднозначен относительно уничтожения «а». Будет ли QObject делать это для меня или я должен делать это явно в MyClass? – glennr
Каждый QObject поддерживает список QObjects, что он является «родительским», когда объект QObject уничтожен, его «дети» также удаляются. Так что нет, вам ничего не нужно, кроме передачи QObject родительскому аргументу объектов, основанных на QObject. Прочтите документы в QObject, это объяснит это намного лучше, чем эти усилия ... – cmannett85