在我的應用程序中,我添加了Qmap並添加了QGraphicsScene,並且所有QGraphicsView都在滾動條關閉的情況下查看。 程序窗口小於像素圖,當我按下方向鍵或移動鼠標滾輪時,像素圖正在移動。QGraphicsView - 如何禁用鼠標和鍵盤滾動
我該如何禁用,即使像素大於窗口,它不會被鍵盤或鼠標移動,除非我使用我的事件呢?
(我試過互動屬性設置爲false,但沒有工作)
在我的應用程序中,我添加了Qmap並添加了QGraphicsScene,並且所有QGraphicsView都在滾動條關閉的情況下查看。 程序窗口小於像素圖,當我按下方向鍵或移動鼠標滾輪時,像素圖正在移動。QGraphicsView - 如何禁用鼠標和鍵盤滾動
我該如何禁用,即使像素大於窗口,它不會被鍵盤或鼠標移動,除非我使用我的事件呢?
(我試過互動屬性設置爲false,但沒有工作)
我相信最簡單的解決方案是將QGraphicsView的FocusPolicy設置爲NoFocus,然後處理主窗口中的所有關鍵事件。
我不知道是否有一個更簡單的方法,但適度寬鬆的方式是使繼承您的QGraphicsView類類,並覆蓋鼠標和按鍵事件。
更難的方法是在窗口小部件上安裝事件過濾器。
在我看來,最難的蠻力解決方案是通過某種信號檢測變化,並將其重新設置爲原來的狀態。
我認爲最簡單的方法是使用QGraphicsView::setSceneRect()
來設置允許視圖可視化的區域。
如果您將視圖的sceneRect()
設置爲視圖窗口小部件的實際大小(或稍微小一些),那麼它將無法滾動或平移到此矩形的外部。