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
各QObjectは、それが「親」であるQObjectのリストを維持します.QObjectが破棄されると、「子」も削除されます。ですから、あなたのQObjectをQObjectから派生したオブジェクトの親argに渡す以外は何もする必要はありません。 QObjectのドキュメントを読むと、それはその努力よりはるかに優れています... – cmannett85