5
向負責刪除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的所有權。那是對的嗎?
謝謝。你的回答在「a」的銷燬方面含糊不清。 QObject會爲我做,還是必須在MyClass的某個地方顯式執行? – glennr 2012-01-06 00:22:00
每個QObject都維護一個QObject對象的列表,當QObject被銷燬時,'children'也被刪除。所以不,除了將你的QObject傳遞給QObject派生對象的父arg外,你不需要任何東西。閱讀關於QObject的文檔,它會比那個努力更好地解釋它... – cmannett85 2012-01-06 00:27:02