gle*_*nnr 5 qt ownership-semantics qmenu
将QAction*添加到负责删除QAction*对象的QMenu时?我在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());
}
Run Code Online (Sandbox Code Playgroud)
在Qt的菜单例如不会删除任何它创建的行动,所以我认为QMenu采取的QAction的所有权.那是对的吗?
如果您将预先存在的操作添加到QWidget(即QMenu),则:
操作的所有权不会转移到此QWidget.
请注意,在您的示例中,删除a是MyClass由于您已将其用作父级QObject,因此a在QObject析构函数中将其删除.
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |