我有一個UI和一個QGraphicsScene子類GraphicsScene實現mousePressEvent(),但鼠標點擊被忽略。QGraphicsScene子類忽略鼠標按下事件
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()不被調用,所以不會發出signal clicked()。還有什麼我需要設置啓用它?
UPDATE:
void GraphicsView::mousePressEvent(QMouseEvent *event) {
emit clicked(event->pos());
}
它連接到正確的簽名的插槽。
你將不得不出示GraphicsScene :: mousePressEvent,我想。我的猜測是你的函數簽名是錯誤的,所以你不會像你認爲的那樣重寫虛函數。 – moswald 2010-08-23 16:55:17
好吧,想來... – CakeMaster 2010-08-23 16:59:31
看來你正在將場景的點擊信號連接到某個插槽。應該是graphicsView的點擊信號? – 2010-08-23 17:14:16