要使 QWidget 的鼠标点击事件不被其父部件接收到,可以通过重写 QWidget 的 mousePressEvent()
方法并设置 event->ignore()
来实现。
下面是一个示例代码:
class MyWidget : public QWidget {
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {}
protected:
void mousePressEvent(QMouseEvent *event) override {
event->ignore(); // 忽略该事件,不让父部件接收
}
};
在上述代码中,MyWidget
是继承自 QWidget 的自定义小部件。在 mousePressEvent()
方法中,我们调用了 event->ignore()
来忽略鼠标点击事件,这样它的父部件就不会接收到该事件。
需要注意的是,在使用这种方式时,还要确保父部件没有设置鼠标穿透(setMouseTracking)和传递策略(setMouseTrackingPolicy)。
内容由零声教学AI助手提供,问题来源于学员提问