首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QAction的所有权

QAction的所有权
EN

Stack Overflow用户
提问于 2012-01-06 06:36:52
回答 1查看 2K关注 0票数 5

向QMenu添加QAction*时,谁负责删除QAction*对象?我在QMenu或QAction的文档中找不到它。

代码语言:javascript
复制
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的所有权。对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 07:57:46

如果将预先存在的操作添加到QWidget (即QMenu ),则:

操作的所有权不会转移到此QWidget。

请注意,在您的示例中,a的删除是由MyClass处理的,因为您已经将它用作父QObject,因此aQObject的析构函数中被删除。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8750878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档