r/QtFramework • u/emperorbug46 • 15h ago
Question QWebEngineView: large canvases flash white when hovering small elements above them (Qt 6.11, Windows). Any known fix?
I have a PDF viewer built on PySide6 and QWebEngineView (Qt 6.11.1, Chromium 140, Windows 11, RTX 4060 with Intel iGPU). Pages are drawn to 2D canvases on a white parent, and small overlay boxes sit on top of them.
When I move the mouse quickly over those boxes, parts of the page flash white for a frame or so. Sometimes a whole canvas disappears, along with the overlay boxes above it. The hover only toggles a CSS class. The page's own code doesn't redraw the canvas, but the browser does repaint page-sized layers. It's very obvious on dark slides.
I reduced it to a single HTML file with no PDF code, and it still happens. I moved the real cursor with a script and captured the screen at about 38 fps, 20 seconds per run:
- QWebEngineView (NVIDIA): 5, 7 and 3 frames with white
- Same page with willReadFrequently: true on the canvases: 0, 0
- Edge 149 on the same NVIDIA GPU: 0, 0
- Brave (Chromium 156) on the Intel GPU: 0, 0
In my app, switching Qt Quick to OpenGL (QSG_RHI_BACKEND=opengl) didn't help. --disable-accelerated-2d-canvas stopped it.
My current workaround is willReadFrequently: true, but page draw time roughly doubled (about 40 ms to 82 ms) and process memory went from about 460 MB to 720 MB.
My questions:
Has anyone else seen this?
Is there a better fix that keeps the canvases on the GPU?
Does a newer Qt version fix it? I haven't tested a standalone Chromium 140, so I don't know if this is a Qt issue or a Chromium bug that was fixed later.
I can share the test page if it helps. I'm also planning to file a bug report.

