Quando si aggiunge un QAction * a un QMenu responsabile dell'eliminazione dell'oggetto QAction *? Non riuscivo a trovarlo menzionato nella documentazione di QMenu o QAction.Proprietà di 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());
}
Il Qt Menus example non comporta l'eliminazione delle azioni che crea quindi immagino che QMenu prende la proprietà del QAction. È corretto?
Grazie. La tua risposta è ambigua riguardo alla distruzione di "a". QObject lo farà per me o devo farlo esplicitamente da qualche parte in MyClass? – glennr
Ogni QObject mantiene un elenco di QObjects di cui è il "genitore", quando il QObject viene distrutto anche i "figli" vengono cancellati. Quindi no, non è necessario alcunché se non passare il QObject all'argomento principale degli oggetti derivati QObject. Leggi i documenti su QObject, lo spiegherà molto meglio di quello sforzo ... – cmannett85