마우스 위치에 약간의 이미지를 표시하고 싶습니다.QGraphicsScene의 drawForeground 강제 업데이트
이void AreaScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event){
MapData::pEnd.setX(event->scenePos().x());
MapData::pEnd.setY(event->scenePos().y());
this->update(0, 0, this->width(), this->height());
}
PEND 내 포인트입니다 :
그래서 나는 않았다.
void AreaScene::drawForeground(QPainter *painter, const QRectF &rect){
qDebug() << "called";
if(MapData::tileIndex!=-1&&MapData::pEnd.x()!=-1){
painter->drawPixmap(MapData::pEnd.x(),MapData::pEnd.y(), *MapData::tileImage, (((int)(MapData::tileIndex%(MapData::tileImage->width()/MapData::tileSize.x())))*MapData::tileSize.y()),
(((int)(MapData::tileIndex/(MapData::tileImage->width()/MapData::tileSize.x())))*MapData::tileSize.x()),
MapData::tileSize.x(), MapData::tileSize.y());
}
}
참고 : 타일 지수는 tileImage (QPixelMap)에 subrectangle의 위치 그래서 내가 포인트를 획득, 이미지와 그 내부의 subrectange입니다
는 drawForeground에 내가 그랬어 .오른쪽 또는 왼쪽 마우스 단추를 계속 누르면 작동하지만 마우스를 움직일 때 업데이트하려면 drawForeground가 호출되지 않는다는 것을 알고 있습니다. 화면에 작은 타일을 표시 할 수 있도록 업데이트 할 수있는 방법이 있습니까?
또 다른 옵션 (나는 생각한다)은 타일 이미지로 마우스 아이콘을 바꾼다. 그러나 나는 약간의 조사를했고 그것을 할 길을 찾지 못했다.
감사 PPL
내 목숨을 구했어. 고마워. – Lefsler