当前位置: 首页> 教育> 高考 > 网页设计与制作教程 机械工业出版社_广告设计与制作专升本考什么_国外网站排名前十_网站设计公司

网页设计与制作教程 机械工业出版社_广告设计与制作专升本考什么_国外网站排名前十_网站设计公司

时间:2025/7/11 20:29:41来源:https://blog.csdn.net/weixin_51795597/article/details/145480670 浏览次数:0次
网页设计与制作教程 机械工业出版社_广告设计与制作专升本考什么_国外网站排名前十_网站设计公司

一、问题

        在项目的需求中,地图A上面需要叠放一个任务窗口B,B覆盖了A,导致A接受不到鼠标及滚轮事件。

二、解决方案

        1、Qt::WA_TransparentForMouseEvents 是 Qt 框架中的一个属性,用于使指定的控件及其子控件不响应鼠标事件。当启用此属性时,鼠标事件将传递给其他控件,就像这些控件及其子控件不存在于控件层次结构中一样

        2、利用postEvent给指定控件发送事件。 重载上面widget的事件处理函数,利用postEvent发送事件,让事件分发给下面的窗口

三、案例

//上层窗口
void Widget::mousePressEvent(QMouseEvent *event)
{QWidget::mousePressEvent(event);postMouseEventToSlibings(event);qDebug() << "widget mousePressEvent";
}void Widget::postMouseEventToSlibings(QMouseEvent *event)
{if (this->parentWidget()){this->setAttribute(Qt::WA_TransparentForMouseEvents, true);auto point = this->mapTo(parentWidget(), event->pos());auto widget = parentWidget()->childAt(point);if (widget){point = widget->mapFrom(parentWidget(), point);auto e = new QMouseEvent(event->type(), point, event->button(),event->buttons(), event->modifiers());QApplication::postEvent(widget, e);}}setAttribute(Qt::WA_TransparentForMouseEvents, false);
}

关键字:网页设计与制作教程 机械工业出版社_广告设计与制作专升本考什么_国外网站排名前十_网站设计公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: