场景是这样的:一个继承于QWidget的窗口,我们假设给它命名为A,点它右键填出一个菜单,右键菜单上有删除选项,点击删除选项后A自删。

如果直接在A类中实现delete的操作,会在弹出菜单的exec(QCursor::pos())那里崩溃,应该是因为这一句要等待菜单的action操作完成后再运行下一句,但是这时候A已经自删了,所以会造成崩溃。

解决办法是不要在A中自删,传一个信号出去到父类中来删。

而且一般是MousePressEvent这里面发信号出去,用MouseReleaseEvent发信号也会造成崩溃。具体并不知道为什么,有知道的朋友看到了请留言指教一下。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐