我在QGraphicsView内画了几个矩形;我通过使用自己的QBrush创建一个QPixmap来使用自定义点画模式。这将显示为具有默认缩放级别,如预期的那样。

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

最佳答案

在Qt中开发EDA工具伴侣时遇到了相同的问题。

经过一番尝试后,我所做的(似乎对我有用)是创建一个自定义图形项。在绘画方法上,我这样做:

QBrush newBrush = brush_with_pattern;
newBrush.setTransform(QTransform(painter->worldTransform().inverted()));
painter->setBrush(newBrush);

那就是将项目的逆变换应用于画笔(这样它就不会缩放)。

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

关于qt - 如何使qt qgraphicsview比例尺不影响点画模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13958385/

10-11 17:06