2016-11-01 7 views
0

次のコードに問題があります。私はQLabelのpixmapとしてMatを設定しようとしています。私がQLabel :: setPixmap()を呼び出すと、何も起こりません!ダイアログボックスのラベルは、プレースホルダーのテキストをそのまま表示したままです。 MyLabelに適切に昇格されました。OpenCVとQt:MatLabel 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

ピックスマップを送信し、ラベルのスロットに接続する信号を作成しようとします。 – Micka

答えて

0

イメージをインターフェイスに設定する必要があります。たとえば、次のように設定することができます。

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