2014-12-22 6 views
0

QImage에 선을 그려 Qlabel에 표시하려고합니다. 그러나 나는 해결할 수없는 몇 가지 문제가있다.QImage에 선 그리기

QPixmap px(100, 100); 
    px.fromImage (imgRaw); // define in header file QImage imgRaw; 
: 그것은 다음과 같은 코드를 변경 한 후에는 null 픽스맵에 있도록 그릴하려고하기 때문에

QPainter::begin: Paint device returned engine == 0, type: 2 
    QPainter::setPen: Painter not active 
    QPainter::end: Painter not active, aborted 

가 그럼 난 코드를 변경 : 나는 그 위에이 코드를 사용

QPixmap px; 
    px.fromImage (imgRaw); // define in header file QImage imgRaw; 

    QPainter p (&px); 
    p.setPen (Qt::red); 

    p.drawLine (mouseStart_X, mouseStart_Y, mouseReleased_X, mouseReleased_Y); 
    p.end(); 

    ui->lblRightImg->setPixmap (px); 
    ui->lblRightImg->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); 
    ui->lblRightImg->setScaledContents(true); 

같은 오류를 제공

그러면 시끄러운 이미지가 나타납니다 (검은 색과 회색의 깨진 이미지)

도와 주시겠습니까? 이 문제가 뭐야?

편집 : 또한 시도

는 :

QPixmap px = QPixmap::fromImage (imgRaw); 

그런 다음

+0

죄송합니다. 나는 또한 당신의 솔루션을 시도했지만 그 후에는 아무것도 그려지지 않습니다. 나는 원래의 이미지를 다시 얻는다. – goGud

+0

은 멀티 스레드 응용 프로그램입니까? – Shf

+0

내가 마우스를 사용하여 신호를 방출 한 후에이 줄을 그리는 중입니다. – goGud

답변

3

fromImage은 QPixmap의 정적 함수와 '객체'에 영향을주지 않습니다 .. 어떤 그림없이 동일한 이미지를 제공, 원하는 픽스맵을 반환합니다. 다음 코드를 사용하여 픽스맵을 초기화하십시오.

QPixmap px = QPixmap::fromImage(imgRaw); 
+0

Qpixmap을 헤더 파일에 정의하지 않았습니다. – goGud

+0

문제가 전달하는 값이 아닌지 확인하기 위해 pos (0,0)에서 pos (px.width(), px.height())까지 선을 그려보십시오. 더우기'p.end()'를 제거하거나'setPixmap' 호출 후에 그것을 옮겨보십시오. – Robert

+0

또한 p.end()를 제거하거나 움직이는 것이 해결되지 않았습니다 : ( – goGud