Je suis tombé sur ceci dans la documentation pour QMainWindow::setMenuBar(QMenuBar * menuBar)
:
Remarque : QMainWindow prend possession du pointeur de la barre de menu et le supprime au moment opportun.
Exemple de code (dans une méthode d'une classe dérivant de QMainWindow
):
QMenuBar * menuBar = new QMenuBar(this);
setMenuBar(menuBar) // <-- immediately transfer ownership
// use menuBar pointer to add actions, menus, and what not
Puis-je toujours me fier à mon pointeur local vers mon QMenuBar
après un appel à setMenuBar
? Je veux dire, est-ce complètement garanti ?
Lorsque je supprime mon QMainWindow
la classe dérivée QMenuBar
est également supprimé car l'objet QMainWindow
est défini comme son parent lors de sa construction - mais quelle politique se cache dans la "prise de possession" ultérieure par le biais de setMenuBar
autre qu'une copie de la référence/pointeur ?