Qt QGraphicsView mouseMoveEvent работает безостановочноC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Qt QGraphicsView mouseMoveEvent работает безостановочно

Сообщение Anonymous »

По какой-то причине использование функции addWidget в классе QGraphicsScene приводит к тому, что связанный виджет QGraphicsView получает mouseMoveEvents без нажатия кнопки мыши и отключения отслеживания мыши.
MyView.h :

Код: Выделить всё

#pragma once

#include 
#include 
#include 
class MyView : public QGraphicsView // subclassing 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() hasMouseTracking(); // indicating that the event goes on
// even though I dont't press any buttons
// and mouse tracking is disabled by default
}

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);
Это происходит только после добавления QWidget или его подкласса в сцену.
Версия Qt — 6.7.0

Подробнее здесь: https://stackoverflow.com/questions/787 ... ks-nonstop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»