在我的应用程序具有与QGraphicsScene像素映像并将所有与滚动条关闭观察中的QGraphicsView。 程序窗口是小的pixmap然后,当我按下箭头键或移动鼠标滚轮像素映像正在被移动。

我如何禁用所以即使像素图比窗口大它不会被键盘或鼠标,除非我用我的事件感动?

(我试过互动属性设置为false,但没有工作)

有帮助吗?

解决方案

相信最简单的解决方案将是的QGraphicsView的FocusPolicy设置为NoFocus,然后处理在主窗口中的所有关键事件。

ui->graphicsView->setFocusPolicy( Qt::NoFocus );

其他提示

我认为简单的方法是使用QGraphicsView::setSceneRect()来设置该视图被允许以可视化的区域。

如果你设置视图的sceneRect()到视图控件的实际大小(或只是略小),那么它将无法滚动或平移这个矩形之外。

我不知道是否有一个更简单的方法,但适度宽松的方式是使继承您的QGraphicsView类的类,并覆盖了鼠标和按键事件。

较硬的方式将涉及对插件安装一个事件过滤器。

在我看来,最难的蛮力解决办法是检测通过某种信号的变化,并将其设置回是怎么回事。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top