Используя QGraphicsScene подкласс с пользовательским интерфейсом? - PullRequest
1 голос
/ 23 августа 2010

Я реализовал сигналы для mousePressEvent () в подклассе QGraphicsScene, но я не могу понять, как использовать класс в пользовательском интерфейсе.Я могу добавить виджет QGraphicsView в свой пользовательский интерфейс, но как мне получить доступ к scene ?

GraphicsScene *scene = new QGraphicsScene(this);
// Add pixmap, etc
ui->graphicsView->setScene(scene);
// Here's where I'm stuck
connect(ui->whereIsTheScene?, SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint));

EDIT: это компилируется, но событие нажатия мыши игнорируетсяЯ думаю, что это отдельная проблема, поэтому я отправил другой вопрос

1 Ответ

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

В вашем примере: используйте указатель scene, который у вас уже есть:

connect(scene, SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint));

В качестве альтернативы, если у вас больше нет указателя, используйте эту функцию :

connect(ui->graphicsView->scene(), SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint));

(не проверено, но я не вижу причин, почему это не должно работать)

...