向QMenu添加QAction*时,谁负责删除QAction*对象?我在QMenu或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的所有权。对吗?
发布于 2012-01-06 07:57:46
如果将预先存在的操作添加到QWidget (即QMenu ),则:
操作的所有权不会转移到此QWidget。
请注意,在您的示例中,a的删除是由MyClass处理的,因为您已经将它用作父QObject,因此a在QObject的析构函数中被删除。
https://stackoverflow.com/questions/8750878
复制相似问题