我是QGraphicsView的子類,我想要做的是:如果在鼠標移動時按下MidButton,那麼我們會像使用常規QGraphicsView操作過程那樣做,但與按下左側按鈕即可滑動圖像。子類化QGraphicsView,自定義鼠標事件
我試過編碼,但它似乎不工作,我不知道爲什麼。
void MyQGraphicsView::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() == Qt::MidButton)
{
QMouseEvent event2(QEvent::MouseMove, event->pos(), Qt::NoButton, Qt::LeftButton, Qt::NoModifier);
QGraphicsView::mouseMoveEvent(&event2);
}
}
任何幫助,將不勝感激。
編輯:刪除安東尼指出的明顯錯誤。
這是我的代碼的時刻:'如果(事件 - >按鈕()testFlag(QT :: MidButton)){QMouseEvent事件2(QEvent的:: MouseMove事件,事件 - > pos(),Qt :: NoButton,Qt :: LeftButton,Qt :: NoModifier); QGraphicsView :: mouseMoveEvent(&event2);}'它沒有做我想做的事情,但測試看起來不錯,因爲它沒有做我已經放在'elif'之後,我確定是加工。 – Leo
@Leo我只用橡皮筋拖動來測試它。事實證明,用滾動手拖動,你也需要重新實現mousePressEvent。查看修改。 – Anthony
謝謝,它現在起作用,唯一的問題是我不得不按下一個新按鈕來使這種行爲停止,只是釋放Midbutton是不夠的。 – Leo