我遇到了一些QRubberBand
直接来自 Qt 帮助的代码崩溃。崩溃发生在setGeometry
通话中。QRubberBand
自从我能够使用 qDebug 访问几何图形以来,就创建了该实例,所以我很困惑。
上下文:代码在一个自定义的小部件中,它是这样创建的:
ImageLabel2* image = new ImageLabel2(this);
image->setPixmap(pix);
setCentralWidget(image);
我知道实例仍然存在,因为注释掉setGeometry
调用以避免崩溃,调试语句继续输出。
我在做一些明显错误的事情吗?
调试输出:
mousePress QPoint(294,343)
程序意外结束。
从崩溃日志:
异常类型:EXC_BAD_ACCESS (SIGSEGV) 异常代码:0x000000000000000d, 0x0000000000000000
代码:
void ImageLabel2::mousePressEvent(QMouseEvent *event)
{
qDebug() << "mousePress" << event->pos();
origin = event->pos();
if (!rubberBand){
rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
}
qDebug() << rubberBand->geometry();
rubberBand->setGeometry(QRect(origin, QSize())); // CRASH
rubberBand->show();
}