Al agregar una QAction * a un QMenu que es responsable de eliminar el objeto QAction *? No pude encontrarlo mencionado en la documentación para QMenu o QAction.Propiedad de la 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());
}
El Qt Menus example no elimina ninguna de las acciones que crea, así que supongo que QMenu toma posesión del QAction. ¿Es eso correcto?
Gracias. Su respuesta es ambigua con respecto a la destrucción de "a". ¿QObject lo hará por mí o debo hacerlo explícitamente en algún lugar de MyClass? – glennr
Cada QObject mantiene una lista de QObjects de los que es el 'padre', cuando se destruye el QObject, también se eliminan 'hijos'. Entonces, no, no necesitas nada más que pasar tu QObject al argumento principal de los objetos derivados de QObject. Lea los documentos en QObject, lo explicará mucho mejor que ese esfuerzo ... – cmannett85