QImage에 그래프가 표시되고 마우스 오른쪽 버튼을 누르면 측정을 위해 십자형 (+)을 측정하고자합니다.위치에 QImage의 십자가를 설정합니다. 여기에서 마우스로 누른 위치
void foo::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::RightButton) {
QPoint pos = event->pos();
int x = pos.x();
int y = pos.y();
QLine line(x-5,y,x+5,y);
QLine line(x,y-5,x,y+5);
QPainter painter(&my_image);
painter.setPen(Qt::red);
painter.setBrush(Qt::yellow);
/*
QPainter::begin: Cannot paint on an image with the QImage::Format_Indexed8 format
QPainter::setPen: Painter not active
QPainter::setBrush: Painter not active
*/
painter.drawLine(line); //no effect
}
}
내가 Paintevent (...)에서 수행하면 원래 그림이 파괴됩니다. 내가 어떻게 해.
추가 정보 : 이미지의 색인이 생성되었습니다. // _ index_value_of_cross_color -
my_image.setColorCount(33);
for(int i = 0;i<33;i++)
{
my_image.setColor(i,qRgb((unsigned char)palette[i*3], (unsigned char)palette[i*3+1], (unsigned char)palette[i*3+2]));
}
my_imag는 검은 배경이 나는 백색의 단면을 그리려> = 32
INT 색 (이 인덱스 32);
for (int ix=x-5;ix<x+5;ix++) {
my_image.setPixel(ix,y,color);
}
for (int iy=y-5;iy<y+5;iy++) {
my_imag.setPixel(x,iy,color);
}
하지만 효과가 없습니다.
를 참조? QImage를 페인트 장치로 사용하려면 초기화 된 QPainter를 사용해야합니다. – cmannett85
QPainter를 사용하여 코드를 변경하여 선을 그립니다. –
이미지를 표시하기 위해'QGraphicsView'를 사용합니까? – pnezis