얼마 동안 Qt/C++로 간단한 그림과 페인팅 앱을 개발하고 있습니다.Qt에서 픽스맵 브러시로 선 그리기?
현재 QPainter :: drawLine()을 사용하여 그리는 중입니다. 제대로 작동합니다.
내가하고 싶은 것은 pixmap 브러시로 그리기입니다. QPainterPath와 QPainter :: strokePath()를 사용하여 단일 색으로 채워진 픽스맵으로 그릴 수 있습니다. 픽스맵이있는 브러쉬를 사용하여 펜으로 패스를 그립니다.
QPen 및 QPainter :: strokePath()를 사용하면 여전히 문제가 있습니다. 바둑판 식으로 된 선으로 된 선이 생깁니다. 하지만 픽스맵을 그려야합니다. 일부 이미지 편집자의 이미지 기반 브러시와 같습니다. drawRect()로 그 일을 할 수는 있지만 픽스맵을 그립니다.
쓴 말로 내 문제를 이해한다면 어떻게하면 픽스맵 브러시로 선을 그릴 수 있습니까? 편집
:
void Canvas::mouseMoveEvent(QMouseEvent *event)
{
polyLine[2] = polyLine[1];
polyLine[1] = polyLine[0];
polyLine[0] = event->pos();
//Some stuff here
painter.drawLine(polyLine[1], event->pos());
}
이것은 내가 뭘하려 : 여기 내가 현재하는 일이다
void Canvas::mouseMoveEvent(QMouseEvent *event)
{
QPen pen(brush, brushSize, Qt::SolidLine, Qt::RoundCap, Qt::BevelJoin);
//Some stuff here
path.lineTo(event->pos());
painter.strokePath(path, pen);
//This creates a fine line, but with a tiled brush
}
마우스의 움직임을 따라 픽스맵을 그리려면, 나는
void Canvas::mouseMoveEvent(QMouseEvent *event)
{
//Some stuff
QBrush brush(QPixmap(":images/fileName.png"));
painter.setBrush(brush);
painter.setPen(Qt::NoPen);
painter.drawRect(QRect(event->pos() - brushSize/2, event->pos() - brushSize/2, brushSize, brushSize));
//This draws the pixmaps with intervals.
}
의 중복 가능성 (http://stackoverflow.com/questions/18502611/line-interpolation-in-qt) – UmNyobe
그것은이다 : 참고로, 나는 여기에 코드를 복사합니다 중복 가능성이 있기 때문에 답변을 모두 적용 할 수 있습니다. 그렇지만 질문과 제목이 약간 다르므로 pixmap 브러시에 대한 답변을 찾고 있다면 Google 검색에서 쉽게 찾을 수 있다고 생각합니다. 우선, 내 대답을 검색하는 동안 다른 대답을 찾을 수 없었습니다. StackOverflow에 등록한 후에 만 보았습니다. –
다른 문제와 동일한 문제입니다. 실제로 당신의 질문은 더 잘 표현됩니다. – UmNyobe