在我的应用程序中,我添加了带像素图的QGraphicsScene,所有内容都是在QGraphicsView中查看的,滚动条关闭。程序窗口比pixmap小,当我按下箭头键或移动鼠标滚轮时,pixmap就会被移动。
我如何禁用它,这样即使像素图比窗口大,它也不会被键盘或鼠标移动,除非我使用我的事件?
(我尝试将交互式属性设置为false,但没有成功)
发布于 2009-05-30 09:05:55
我认为最简单的解决方案是将QGraphicsView的FocusPolicy设置为NoFocus,然后在主窗口中处理所有关键事件。
ui->graphicsView->setFocusPolicy( Qt::NoFocus );发布于 2010-08-17 07:08:02
我认为最简单的方法是使用QGraphicsView::setSceneRect()来设置视图允许可视化的区域。
如果您将视图的sceneRect()设置为视图小部件的实际大小(或者只是稍微小一点),那么它将不能滚动或平移到此矩形之外。
发布于 2009-05-29 14:12:55
我不知道是否有更简单的方法,但最简单的方法是创建一个继承QGraphicsView类的类,并覆盖鼠标和按键事件。
更难的方法是在小部件上安装事件过滤器。
在我看来,最困难的暴力解决方案是通过某种信号检测变化,并将其恢复到原来的状态。
https://stackoverflow.com/questions/925934
复制相似问题