QWidget :: mousePressEvent()同时在两个小部件上
问题描述:
我试图一次运行两个QWidget::mousePressEvent()
处理程序。我有两个小部件,A和B. B从QLabel
继承,A从QWidget
继承。我已经超载了QWidget::mousePressEvent()
他们两个。来自B的小部件正在获取光标位置QPoint
,它正在工作。 一个小部件从B类获取这些信息,但不幸的是,只有当我点击小部件B以外的其他地方(蓝色区域)。 那么,如果我点击窗口小部件B的棕色空间,我应该怎么做才能从窗口小部件A运行QWidget::mousePressEvent()
?QWidget :: mousePressEvent()同时在两个小部件上
答
有event->ignore()
,因为A是B的背后则大概是A是B的父(也许不是直接的,但只要事情,因为它是树倒认为没有),所以,如果在年底B::mousePressEvent()
you event->ignore()
然后事件将继续向下传播,并且还会触发A的mousePressEvent()
...最终,如果没有其他消息沿路径消耗事件。
此外,由于mousePressEvent()
只是简单地调用一些功能,所以您也可以从B的A的事件处理程序手动执行此操作,只需要引用它即可,实现起来很简单。如果相关,您可能必须将坐标映射到父项。
event-> ignore()正是我所需要的!非常感谢! (: – Tatarinho