Подкласс QGraphicsScene игнорирует события нажатия мыши - PullRequest
2 голосов
/ 23 августа 2010

У меня есть пользовательский интерфейс и подкласс QGraphicsScene GraphicsScene, который реализует mousePressEvent (), однако щелчки мыши игнорируются.

ui->setupUi(this);
scene = new GraphicsScene(this);
scene->addPixmap(QPixmap::fromImage(someImage));
ui->graphicsView->setScene(scene);
connect(scene, SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint)));

GraphicsScene :: mousePressEvent () не вызывается и поэтому не передает сигналщелкнул ().Есть ли что-то еще, что мне нужно установить, чтобы включить это?

ОБНОВЛЕНИЕ:

void GraphicsView::mousePressEvent(QMouseEvent *event) {
        emit clicked(event->pos());
}

Он подключен к слоту с правильной подписью.

1 Ответ

1 голос
/ 23 августа 2010

Мос был прав насчет функции подписи. Функция должна была быть:

void GraphicsView::mousePressEvent(QGraphicsSceneMouseEvent *event) {
        emit clicked(event->pos());
}

вместо

void GraphicsView::mousePressEvent(QMouseEvent *event) {
        emit clicked(event->pos());
}
...