2014-09-06 1 views
0

ComboBox에서 항목을 변경할 때 내 라벨에 새 이미지를 설정하고 싶습니다.QComboBox의 currentIndexChanged 이벤트에 대한 응답으로 QLabel에 Pixmap을 설정하면 프로그램이 손상됩니다.

void MainWindow::comboBox1Changed(int index) 
{ 
    ui->cameraImage->setPixmap(QPixmap::fromImage(maskPicture)); 
} 

maskPicture는 매트 형식 (OpenCV의)에서 변환 된 이미지입니다이 funcion을 사용하여 : : 여기에 슬롯 기능의

maskPicture = QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::Format_RGB888); 

문제는 그 프로그램이 충돌이지만, 항상 충돌하지 않습니다. 때때로 그것은 그림을 적절하게 바꿉니다. 또한 타이머 이벤트가 발생할 때 실행되는 것과 같은 방식으로 그림을 업데이트하는 또 다른 기능이 있지만 항상 정상적으로 작동합니다. 문제는 comboBox에서만 발생합니다. 콤보 상자의 항목을 몇 번 바꿔서 그림을 바꿀 수 있지만 결국 프로그램 충돌이 발생합니다.

+0

어디서 어떻게 충돌하는지 알려줄 필요가 있습니다. – Mitch

+0

이 함수를 실행하는 동안 슬롯 함수에서 충돌이 발생합니다. ui-> cameraImage-> setPixmap (QPixmap :: fromImage (maskPicture)); – Giersz

+0

어떻게 충돌합니까? 오류 메시지는 무엇입니까? 'ui'는 유효한 포인터입니까? 'cameraImage'? – Mitch

답변

0

몇 가지 변경을 가했지만 이제는 작동합니다. 변수 maskPicture는 이제 QImage 대신 Mat type이며 슬롯 함수에서 변환을 수행합니다. 왜 그것이 이전에 충돌하고 있었는지 아직 모르겠지만 적어도 지금은 작동합니다.

관련 문제