gpt4 book ai didi

python - 如何检测鼠标点击 pyside 绘制的椭圆?

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:24 26 4
gpt4 key购买 nike

我在 QWidget 中使用 QPainter 在黑色背景上绘制一堆椭圆,如下所示:

paint = QPainter()
paint.begin(self)

paint.setBrush(Qt.black)
paint.drawRect(event.rect())

brush = ...
paint.setBrush(brush)
paint.drawEllipse(center, rad, rad)

绘制完一堆椭圆后,我想检测鼠标在其中一个现有椭圆上的点击。我在 QPainter 的文档中没有发现任何明显的内容。

如果有其他东西可以用来代替QPainter,请提供一个示例,在其他框架中显示我上面的示例。

最佳答案

您需要自己检测自定义区域,如下所示:

def mousePressEvent(self, event):
''' You will have to implement the contain algorithm yourself'''
if sel.fo(even.pos()):
self.myMethod()

QGraphicsEllipseItem.contains()

或者,您可以查看QGraphicsEllipseItem,因为它具有 contains-logic implemented and offered .

def mousePressEvent(self, event):
if self.contains(event.pos()):
self.myMethod()

然后您使用相应的参数创建对象:

scene = QGraphicsScene()
ellipseItem = MyGraphicsEllipseItem(centerx, centery, rad, rad)
scene.addItem(ellipseItem)

view = QGraphicsView(scene)
view.show()

scene.setBackgroundBrush(Qt.black)

关于python - 如何检测鼠标点击 pyside 绘制的椭圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23856381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com