我最近将一个应用程序从 Qt 4 迁移到了 Qt 5。我曾经使用QPen()
宽度为零的默认值,因此很美观。迁移后,我无法将其保留为默认值(默认笔已更改为宽度 1,因此不是装饰性的)。所以我简单地添加了一个电话,setCosmetic(True)
所以我的笔是化妆品但宽度为 1。
然而,这导致了一些意想不到的(对我来说)行为。特别是我有一些QGraphicsEllipseItem
对象给出了不正确的选择行为:具体来说,一个非常小的椭圆,放大到一个大尺寸,会shape()
比它正在绘制的要大得多。它是用化妆笔(1 像素)绘制的,但形状的计算就像笔的大小为 1 一样。
这很容易解决:我只是将QPen
宽度设置为 0。但它在我脑海中提出了一个问题。
具有非零宽度的化妆笔的预期语义是什么?这是QGraphicsEllipseItem
预期的行为,并且具有有用的应用程序,还是出乎意料?