You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson Xavier上QT QGraphicsView开启鼠标交互后显示白屏问题

可行修复方案

  • 方案1:全局强制使用软件光栅渲染,避开Jetson NVIDIA驱动与Qt 5.9.5的OpenGL渲染兼容问题
    在main函数初始化QApplication前添加代码:
    QApplication::setAttribute(Qt::AA_UseSoftwareRasterizer);
    
    该方案兼容性最高,缺点是大场景下渲染性能会有所下降。
  • 方案2:单独为异常的GraphicsView B设置全视口更新模式,修复Qt 5.9输入事件触发时的局部更新计算错误
    在初始化GraphicsView B的代码中添加:
    m_graphicsView->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
    
    该方案不影响全局渲染性能,90%以上同场景兼容性问题均可通过该配置修复。
  • 方案3:替换事件过滤器实现逻辑,避免视口事件被异常拦截
    不要通过installEventFilter绑定滚轮事件,改为继承QGraphicsView类,重写wheelEvent、mouseMoveEvent等原生虚函数实现平移、缩放逻辑,避免事件过滤器拦截Qt内部的渲染更新通知事件。
  • 方案4:显式设置场景边界矩形,避免开启拖拽模式后视口异常偏移
    完成场景元素添加后,显式调用:
    m_graphicsView->setSceneRect(scene->itemsBoundingRect());
    
    防止Qt 5.9自动计算场景范围出错,导致视口偏移到无内容区域显示白屏。

根因说明

该问题是Qt 5.9.5在ARM架构Jetson设备的Ubuntu 18.04桌面环境下的已知兼容bug:开启鼠标跟踪、拖拽模式或视口事件过滤器时,会触发Qt渲染更新逻辑与NVIDIA显卡驱动的适配异常,最终导致视口内容不渲染。和此前遇到的QMenu异常属于同类原生渲染适配问题,无需修改业务逻辑,仅需添加上述兼容配置即可解决。

内容的提问来源于stack exchange,提问作者Jeremy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:09:01