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