我最近将一个应用程序从Qt4迁移到Qt5。我过去使用的是宽度为零的默认QPen()
,因此这是美观的。迁移后,我不能将其保留为默认设置(默认画笔已更改为宽度为1,因此不是美容的)。所以我简单地添加了一个对setCosmetic(True)
的调用,所以我的钢笔是修饰的,但宽度是1。
然而,这导致了一些(对我来说)意想不到的行为。特别是,我有一些QGraphicsEllipseItem
对象给出了不正确的选择行为:具体地说,一个非常小的椭圆,放大到很大的尺寸时,它的shape()
会比正在绘制的要大得多。它是用化妆品笔(1像素)绘制的,但形状的计算就像笔的大小是1放大一样。
这很容易解决:我只需将QPen
宽度设置为0。但这在我的脑海中引发了一个问题。
非零宽度的化妆品笔的预期语义是什么?这是QGraphicsEllipseItem
的预期行为,是有用的应用程序,还是意想不到的?
发布于 2019-04-17 19:13:54
请参阅QGraphicsItem::paint()
的文档
QGraphicsItem不支持使用宽度非零的化妆笔。
https://stackoverflow.com/questions/55724380
复制相似问题