如何确定哪个兄弟姐妹收到事件
How to determine which sibling receieves the event?
QWidget类是多个重叠的QWidget同级的父级。当实现mousePressEvent时,只有最近构造的子级接收该事件。有没有办法让所有的兄弟姐妹都参加这个活动?或者更好的方法来确定哪个孩子应该接受它?
附言:如果不提供源代码,我假设这一点已经足够清楚了,尤其是因为最小的例子无论如何都会非常大。如果有人认为无论如何都需要代码,请留下注释,我会添加它。
您可能需要使用QEvent::ignore()
函数在小部件中将事件标记为已忽略。这样做,您将把它传播到父窗口小部件。根据关于QEvent::ignore()
功能的Qt文档:
清除事件对象的接受标志参数,相当于的调用setAccepted(false)。清除accept参数表示事件接收器不想要该事件。意外事件可能传播到父窗口小部件。
您应该在每个同级类的回调方法中生成新的事件。
void QWidgetChild::mousePressEvent(QMouseEvent *event)
{
// Act
// Pass to parent
QWidget::mousePressEvent(event);
// Generate new event for objects of sibling classes
// How?
}
请参阅postEvent文档。
相关文章:
- Android NDK传感器向事件队列报告奇怪的间隔
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 处理闪烁窗口事件
- C++Builder中的OnClick事件签名存在问题
- 跟踪滚动条上的鼠标事件
- 什么是事件表 (wxWidgets)?
- 如何在 MFCaptureEngine 中获取"Camera removed"事件
- 给定顺序中的事件处理
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- 如何创建事件驱动的 SDL2 应用程序
- Windows 进程间同步类似事件?
- 如何从C++端挂接到 QML 项的 onClick 事件
- 铸造兄弟姐妹类是有充分理由的
- 如何确定哪个兄弟姐妹收到事件
- Linux 编译"long distance"兄弟姐妹之间的dynamic_cast失败
- 兄弟姐妹的dynamic_cast的用例是什么?
- pugiXML:不能遍历兄弟姐妹!只加载第一个