当前位置: 技术问答>linux和unix
事件能传递吗,就是子类触发了一个鼠标事件,能不能也将这个鼠标事件发给父类
来源: 互联网 发布时间:2016-07-20
本文导语: 如题,就是一个窗体上有个按钮,窗体是按钮的父类,鼠标点击按钮的同时,应该是QApplication会给按钮发送一个鼠标点击事件,能不能在这个鼠标点击事件发送的同时,也发送一个鼠标点击事件给父类(窗体)。我看到QWidget...
如题,就是一个窗体上有个按钮,窗体是按钮的父类,鼠标点击按钮的同时,应该是QApplication会给按钮发送一个鼠标点击事件,能不能在这个鼠标点击事件发送的同时,也发送一个鼠标点击事件给父类(窗体)。我看到QWidget中有一个属性:Qt::WA_NoMousePropagation,看说明好像意思也是事件传递,但我将其在setAttribute中设置为false也不行。
另外,我还想用事件过滤器来处理,就是过滤器接收到发送到按钮的点击事件的时候,发送一个相同的事件给窗体,但不起作用,代码如下:
MainWindow::MainWindow()
{
......
this->installEventFilter(); //没有父进程,所有为空
button = new QPushButton(this);
button->installEventFilter(this);
......
}
bool MainWindow::eventFilter(QObject *target, QEvent *event)
{
if (target == button)
{
qDebug()