对一个GraphicsView控件进行自定义提升,添加了滚轮缩放、右键菜单等功能。
右键菜单有一个清空图像的功能,原本使用场景的clear方法,但是报错:debug assertion failed。
改为使用removeItems方法一个个去除场景中的items:
void My_GraphicsView::clearAll(bool)
{
foreach(QGraphicsItem *item, items())
{
scene()->removeItem(item);
}
//scene()->clear();//报错
}
原因猜测:
此工程使用了自定义插件,在另一个没有插件的工程clear方法正常。
C++指针使用不当。
欢迎留言提出想法~