我有一个QGraphicsView小部件,里面有一个qgraphicscene。我希望在QGraphicsView小部件的应用程序窗口外部的任何位置检测mouseButtonPressed事件。你知道吗
我尝试将eventFilter安装到应用程序的中心小部件,如下所示:
self.centralwidget.installEventFilter(self)
我的QGraphicsView小部件是self.view开始时间. 在eventFilter方法中,我有以下内容:
def eventFilter(self, obj, event):
if obj != self.viewStartImg and event.type() == QEvent.MouseButtonPress:
print('Outside the QGraphicsView')
在我的应用程序中,当我在QGraphicsView内部单击时,仍然会打印出“在QGraphicsView外部”。我相信这是因为QGraphicsView是centralWidget的孩子,但我不确定。你知道吗
任何实现此功能的替代方法都将受到高度赞赏!你知道吗
有几种方法可以实现这一点。一种方法是将
QGraphicsView
子类化并重写子类中的mousePressEvent
。另一种可能是在视图对象上安装事件过滤器。第一种方法是这样做第二个呢
相关问题 更多 >
编程相关推荐