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();
}