QPen的用法,这是装饰性的但宽度不为零

时间:2019-04-17 09:32:25

标签: qt qpen

我最近将应用程序从Qt 4迁移到了Qt5。我曾经使用默认的QPen(),其宽度为零,因此很美观。迁移后,我无法将其保留为默认值(默认笔已更改为宽度1,因此不是装饰性的)。因此,我只是向setCosmetic(True)添加了一个电话,所以我的笔既美观,但宽度为1。

但是,这导致了一些意外的行为(对我而言)。特别是,我有一些QGraphicsEllipseItem对象给出了错误的选择行为:具体来说,一个很小的椭圆(放大到较大的大小)将比绘制的shape()大得多。它是用化妆用(1像素)的笔绘制的,但其形状的计算就像放大了1号笔一样。

这很容易解决:我只是将QPen的宽度设置为0。但这在我的脑海中提出了一个问题。

非零宽度的化妆笔的预期语义是什么? QGraphicsEllipseItem的这种行为是有意的,并在有用的应用程序中发生了吗?

1 个答案:

答案 0 :(得分:0)

请参阅QGraphicsItem::paint()的文档:

  

QGraphicsItem不支持使用非零宽度的化妆笔。