场景:右键菜单删除本界面
1.QMenu菜单exec显示;
2.执行动作QAction;
3.直接删除本界面(或者发送信号到父界面,由父界面删除)
4.exec报错(原因:本界面已删除,对象为空,错误)
QMenu::exec执行逻辑:
1.显示菜单;
2.执行动作;
3.触发动作的槽函数,如果槽emit A信号,将等待A信号的槽函数执行完成;(可详查事件循环)
4.关闭菜单。
解决方案:替代exec
QMenu::move();
QMenu::show();
执行过程:
1.显示菜单;
2.点击操作;
3.关闭菜单;
4.响应菜单操作;