我试图在qgraphicsitem中绘制带有轮廓的图像。此图像将具有不同的分辨率(640x380,1190 * 780,320 * 410),我必须绘制一个恒定的4px轮廓,而不管图像的宽度和高度。我试图获取图像几何的百分比,但对于不同大小的图像,轮廓正在改变。对于更高的分辨率,它看起来很薄,对于较小的细线。
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()
返回mePixmap.rect()。adjusted(-4,-4,4,4);
此项目以fitInview
显示在视图中void GraphicsView::resizeEvent(QResizeEvent *event)
{
QGraphicsView::resizeEvent(event);
fitInView(this->scene()->sceneRect (),Qt::KeepAspectRatio) ;
}
答案 0 :(得分:1)
如果你需要一个恒定的4px轮廓并且屏幕分辨率正在改变,你所看到的是正确的。
4px轮廓将自然看起来更小,分辨率更高。从理论上讲,如果分辨率仅为4像素宽,则会占据屏幕的整个宽度,但是对于8px宽的分辨率,4px线仅覆盖屏幕的一半。在这两种情况下,轮廓仍然是4px。
如果您的屏幕分辨率相同而且只是图像分辨率正在发生变化,那么您需要显示您尝试渲染轮廓的代码。