You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt 6.7.0中QGraphicsView未按鼠标仍持续接收mouseMoveEvent问题

Qt 6.7.0中QGraphicsView异常触发mouseMoveEvent的问题

在Qt 6.7.0版本中存在以下异常现象:当使用QGraphicsScene::addWidget()函数将QWidget或其子类添加到场景后,关联的QGraphicsView部件会在未按下任何鼠标按钮、且鼠标追踪(mouse tracking)处于关闭状态的情况下,持续接收mouseMoveEvent事件。该现象仅在场景中添加了QWidget类实例后才会出现。

复现代码

MyView.h

#pragma once

#include <qgraphicsview>
#include <qevent>
#include <qgraphicsscene>
class MyView : public QGraphicsView // 继承QGraphicsView
{
    Q_OBJECT
protected:
    void mouseMoveEvent(QMouseEvent* event);


public:
    MyView(QGraphicsScene* scene, QWidget *parent);
    ~MyView();
};

MyView.cpp

#include "MyView.h"

MyView::MyView(QGraphicsScene* scene, QWidget* parent)
    : QGraphicsView(scene, parent)
{}

void MyView::mouseMoveEvent(QMouseEvent* event)
{
    qDebug() << this->hasMouseTracking(); // 输出表明即使未按下按钮且鼠标追踪关闭,事件仍持续触发
}

MyView::~MyView()
{}

QMainWindow.cpp

QVBoxLayout* layout = new QVBoxLayout();
ui.centralWidget->setLayout(layout);
QGraphicsScene* scene = new QGraphicsScene();
scene->addWidget(new QWidget());
MyView* v = new MyView(scene, ui.centralWidget);
layout->addWidget(v);

内容的提问来源于stack exchange,提问作者widejaw78

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 16:10:54