2009-05-29 102 views
3

在我的應用程序中,我添加了Qmap並添加了QGraphicsScene,並且所有QGraphicsView都在滾動條關閉的情況下查看。 程序窗口小於像素圖,當我按下方向鍵或移動鼠標滾輪時,像素圖正在移動。QGraphicsView - 如何禁用鼠標和鍵盤滾動

我該如何禁用,即使像素大於窗口,它不會被鍵盤或鼠標移動,除非我使用我的事件呢?

(我試過互動屬性設置爲false,但沒有工作)

回答

6

我相信最簡單的解決方案是將QGraphicsView的FocusPolicy設置爲NoFocus,然後處理主窗口中的所有關鍵事件。

0

我不知道是否有一個更簡單的方法,但適度寬鬆的方式是使繼承您的QGraphicsView類類,並覆蓋鼠標和按鍵事件。

更難的方法是在窗口小部件上安裝事件過濾器。

在我看來,最難的蠻力解決方案是通過某種信號檢測變化,並將其重新設置爲原來的狀態。

3

我認爲最簡單的方法是使用QGraphicsView::setSceneRect()來設置允許視圖可視化的區域。

如果您將視圖的sceneRect()設置爲視圖窗口小部件的實際大小(或稍微小一些),那麼它將無法滾動或平移到此矩形的外部。

相關問題