2016-11-01 5 views
0

다음 코드에 문제가 있습니다. 매트를 QLabel 픽스맵으로 설정하려고합니다. QLabel :: setPixmap()을 호출하면 아무 일도 일어나지 않습니다! 대화 상자의 레이블은 그대로 유지되어 자리 표시 자 텍스트를 표시합니다. MyLabel로 올바르게 승격되었습니다. OpenCV 및 Qt : 매트 대 QLabel QPixmap

//include stuff above 
MyLabel::MyLabel(QWidget *parent): QLabel(parent) 
{ 
    boats = cv::imread("C:/boats.jpg"); 
    setPixmap(boats); 
} 

void MyLabel::setPixmap(cv::Mat image){ 
    cv::Mat converted; 
    cv::cvtColor(image, converted, CV_BGR2RGB); 
    QImage result = QImage((const unsigned char*)(converted.data), 
          converted.cols, converted.rows, QImage::Format_RGB888); 
    QLabel::setPixmap(QPixmap::fromImage(result)); 

} 

은 또한 다음과 같은 방법으로 픽스맵을 설정 시도 :

QLabel::setPixmap(QPixmap("C:/boats.jpg")); 

을하지만이 같은 효과를 생성합니다. 어떤 아이디어?

+0

pixmap을 보내고 레이블의 슬롯에 conncect하는 신호를 만들려고합니다. – Micka

답변

0

이미지를 인터페이스로 설정해야합니다. 예를 들어, 다음과 같이 설정할 수 있습니다 :

ui->label_15->setPixmap(QPixmap::fromImage(result));