如何使qt qgraphicsview规模不影响点画模式?

Kan*_*yan 6 qt qpixmap qgraphicsview

我画了几个矩形QGraphicsView; 我通过创建一个QBrushwith my 来使用自定义点画模式QPixmap.这将按预期显示默认缩放级别.

当我打电话时view->scale(),矩形会像我预期的那样显得更大或更小.然而,Qt已经缩放了点画模式的各个位,这是预期的; 我希望它能用画笔再次绘制更大或更小的矩形.例如.如果我使用了带有一个像素点和像素空间的点画图案,在放大后,我想看到一个更大的矩形,但我想要相同的点画图案具有相同的像素间隙.这是可以实现的吗?谢谢.

小智 6

我在Qt开发EDA工具伴侣时遇到了同样的问题.

经过一番尝试,我所做的(似乎对我有用)就是创建一个自定义图形项目.关于绘画方法,我做:

QBrush newBrush = brush_with_pattern;
newBrush.setTransform(QTransform(painter->worldTransform().inverted()));
painter->setBrush(newBrush);
Run Code Online (Sandbox Code Playgroud)

也就是将项目的逆变换应用于画笔(因此它不会缩放).

我认为setDashOffset仅适用于形状的边框(不是填充).