QWidget类是多个重叠的QWidget兄弟的父级。实现mousePressEvent时,最近构造的子进程正在接收事件。 有没有办法让所有兄弟姐妹参加活动? 或者更好的方法来确定哪个孩子应该接受它?
P.S。我假设这很清楚,没有提供源代码,特别是因为最小的例子无论如何都会很安静。如果有人希望无论如何都需要代码,请留下评论,我会添加它。
答案 0 :(得分:1)
您可能希望使用QEvent::ignore()
函数在窗口小部件中将事件标记为已忽略。这样做,您将把它传播到父窗口小部件。根据{{1}}函数的Qt文档:
清除事件对象的accept flag参数,等效 调用setAccepted(false)。清除接受参数表示 事件接收者不想要事件。不需要的事件可能会 传播到父窗口小部件。
答案 1 :(得分:0)
您应该在每个兄弟类的回调方法中生成新事件。
void QWidgetChild::mousePressEvent(QMouseEvent *event)
{
// Act
// Pass to parent
QWidget::mousePressEvent(event);
// Generate new event for objects of sibling classes
// How?
}
请参阅postEvent文档。