我知道哪边有bug,但是有时运行不会报错,有时就报错。
出错代码如下:
void MyCanvas::addSelectedBox(PTBaseClass drawCellArray){
//存储要添加选中的位置
left=drawCellArray->cellPosition.left-4;
right=drawCellArray->cellPosition.right-4;
top=drawCellArray->cellPosition.top-4;
bottom=drawCellArray->cellPosition.bottom-4;
//添加选中框
rect1=ownmain->mycanvas->addRect(drawCellArray->cellPosition.left-4,drawCellArray->cellPosition.top-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect2=ownmain->mycanvas->addRect(drawCellArray->cellPosition.left-4,drawCellArray->cellPosition.bottom-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect3=ownmain->mycanvas->addRect(drawCellArray->cellPosition.left-4,(drawCellArray->cellPosition.top+drawCellArray->cellPosition.bottom)/2-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect4=ownmain->mycanvas->addRect((drawCellArray->cellPosition.left+drawCellArray->cellPosition.right)/2-4,drawCellArray->cellPosition.top-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect5=ownmain->mycanvas->addRect((drawCellArray->cellPosition.left+drawCellArray->cellPosition.right)/2-4,drawCellArray->cellPosition.bottom-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect6=ownmain->mycanvas->addRect(drawCellArray->cellPosition.right-4,drawCellArray->cellPosition.top-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect7=ownmain->mycanvas->addRect(drawCellArray->cellPosition.right-4,(drawCellArray->cellPosition.top+drawCellArray->cellPosition.bottom)/2-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
rect8=ownmain->mycanvas->addRect(drawCellArray->cellPosition.right-4,drawCellArray->cellPosition.bottom-4,6,6,QPen(QColor(255,255,255)),QBrush(QColor(0,128,0)));
selected=true;
}
//清除选中框
if(left!=0 && right!=0 && top!=0 && bottom!=0){
QGraphicsItem *item1=ownmain->mycanvas->rect1;
ownmain->mycanvas->removeItem(item1);
QGraphicsItem *item2=ownmain->mycanvas->rect2;
ownmain->mycanvas->removeItem(item2);
QGraphicsItem *item3=ownmain->mycanvas->rect3;
ownmain->mycanvas->removeItem(item3);
QGraphicsItem *item4=ownmain->mycanvas->rect4;
ownmain->mycanvas->removeItem(item4);
QGraphicsItem *item5=ownmain->mycanvas->rect5;
ownmain->mycanvas->removeItem(item5);
QGraphicsItem *item6=ownmain->mycanvas->rect6;
ownmain->mycanvas->removeItem(item6);
QGraphicsItem *item7=ownmain->mycanvas->rect7;
ownmain->mycanvas->removeItem(item7);
QGraphicsItem *item8=ownmain->mycanvas->rect8;
ownmain->mycanvas->removeItem(item8);
selected=false;
pt_selected=false;
connect_selected=false;
}