2014-04-04 3 views
0

qgraphicsitem에 개요가있는 이미지를 페인트하려고합니다. 이 이미지는 다른 해상도 (640x380, 1190 * 780, 320 * 410)를 가지며 이미지 너비와 높이에 관계없이 일정한 4px 윤곽선을 그려야합니다. 나는 이미지 지오메트리의 백분율을 취하려고했지만 윤곽이 바뀌는 이미지의 다른 크기에 대해 노력했습니다. 고해상도의 경우 얇게 보이고 작은 값의 얇은 선을 나타냅니다. 다른 이미지 해상도로 qgraphicsitem에 이미지 개요 추가

QFont segoeFont("Segoe Regular"); 
    segoeFont.setPointSize(10); 
    painter->setFont(segoeFont); 
    painter->setRenderHints(QPainter::TextAntialiasing); 
    painter->setBrush(QColor(69,69,69)); 
    if(meIsSelected) 
    { 
     painter->setBrush(QColor(65, 167, 243)); 
     QPen pen(QColor(65, 167, 243), 2); 
     pen.setCosmetic(true); 
    } 

    painter->drawRect (this->boundingRect()); 
    painter->drawImage (QPoint(0,0), mePixmap); 

내 boundingRect() .adjusted

반환 mePixmap.rect() (-4, -4, 4, 4); 당신이 일정한 4 픽셀 개요 및 화면 해상도는 당신이보고있는 것은 정확, 변화해야하는 경우

이 항목은 fitInview

void GraphicsView::resizeEvent(QResizeEvent *event) 
{ 
    QGraphicsView::resizeEvent(event); 
    fitInView(this->scene()->sceneRect(),Qt::KeepAspectRatio) ; 
} 

답변

1

으로보기에 표시됩니다.

4px 외곽선은 더 자연스럽게 더 높은 해상도로 보입니다. 이론 상으로는 해상도가 4 픽셀 너비라면 화면의 전체 너비를 차지하지만 8px 와이드 해상도의 경우 4px 라인은 화면 절반 만 차지합니다. 두 경우 모두 외곽선은 여전히 ​​4 픽셀입니다.

화면 해상도가 동일하고 변경되는 이미지 해상도 인 경우 개요를 렌더링하는 방법에 대한 코드를 표시해야합니다.

+0

내 게시물을 내 코드로 편집했습니다. – Wagmare

+0

게시 한 코드에서 painter-> setBrush를 호출 한 다음 펜을 만들고 페인터에 펜을 설정하지 않는다는 것을 보여줍니다. 또한 이미지 주위에 + 4px 이미지의 boundingRect를 반환하는 경우 painter-> drawImage (QPoint (4,4), mePixmap)를 호출해야한다고 생각했을 것입니다. – TheDarkKnight

관련 문제