gpt4 book ai didi

c++ - QWidget::mousePressEvent() 同时在两个小部件上

转载 作者:行者123 更新时间:2023-11-28 05:24:31 27 4
gpt4 key购买 nike

我正在尝试同时运行两个 QWidget::mousePressEvent() 处理程序。我有两个小部件,A 和 B。B继承自QLabel,A继承自QWidget。我已经在它们两个上重载了 QWidget::mousePressEvent()。来自 B 的小部件正在获取 QPoint 光标位置并且它正在工作。一个小部件正在从类 B 获取此信息,但不幸的是,只有当我单击小部件 B 之外的其他地方(蓝色区域)时才会这样。那么,如果我从小部件 B 单击棕色空间,我应该如何从小部件 A 运行 QWidget::mousePressEvent()

enter image description here

最佳答案

event->ignore(),因为 A 在 B 之后,所以推测 A 是 B 的父级(可能不是直接的,但只要它在树下就没关系),所以如果在 B::mousePressEvent() 结束时你 event->ignore() 那么事件将继续向下传播并触发 A 的 mousePressEvent() 以及......最终,如果没有别的东西沿着路径消耗事件。

此外,由于 mousePressEvent() 可能只是调用一些功能,您也可以从 B 的 A 事件处理程序中手动执行此操作,您所需要的只是对它的引用,实现起来很简单.如果相关,您可能必须将坐标映射到父级。

关于c++ - QWidget::mousePressEvent() 同时在两个小部件上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40828750/

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