1
我正在使用Qt Graphics View框架創建一個場景並將多個視圖附加到相同的場景,其中這些視圖呈現3D場景作爲背景,而2D繪圖則是一種疊加層。QGraphicsView接受的事件
我想攔截我的OverlayViewport類(繼承QGraphicsView)中的鼠標/鍵事件並相應地導航3D場景。下面是一個示例事件處理程序:
void OverlayViewport::mouseMoveEvent(QMouseEvent * event)
{
QGraphicsView::mouseMoveEvent(event);
if (event->isAccepted())
{
return;
}
3D_Scene_Stuff_Code();
}
但事件總是被接受,因此我的3D場景的東西代碼永遠不會執行。如果我刪除了isAccepted()檢查,我的代碼總是執行。
我想要實現的是,讓場景像選擇,拖動vs,如果它沒有做任何事情(不接受事件),做我的3D的東西。
所以,這裏是我的問題:
1 - 我在錯誤的道路上嗎?
2 - 如果事件未被場景接受,我應該將事件轉發到視圖所附的場景並做我的事情嗎?
3 - 如果不是2,我應該如何繼續?
最好的問候。
你會如此友善地發佈相應的錯誤報告的URL嗎?我正在使用Qt 5.1(也檢查過Qt 5.2)並面臨同樣的問題。你有沒有發現你的案件的任何解決方法? – 2014-01-19 11:04:57
它似乎是修復和關閉,但在這裏你去: https://bugreports.qt-project.org/browse/QTBUG-8061 – erelender 2014-01-23 14:43:35
我見過那一個,但它與mouseDoubleClickEvent()有關,但你在原始文章中提到了mouseMoveEvent()。這就是我問的原因。 – 2014-01-24 06:31:01