Well.... #@$)(*)*$*$*# ....

I went back to this and found it no longer failed the same way. It worked but was opaque. After some experimentation I found I needed to setAttribute(Qt::WATranslucentBackground). I never had that before (I had never seen it before, I stumbled across it).

Now it works beautifully and as expected, even when I added animation (though it was a little jerky but that may be Xming on Windows).

I spent about an hour trying to recreate the failure I had before without success. I had made a ton of (I thought) unrelated changes in other code, and apparently something else fixed this overlay (which class had not been touched), at least the cross-wise static-y aspect.

I unfortunately was not saving backups as I wrote the code (shame on me -- it was on a VM so wasn't part of the normal backup), and don't have a version that fails, and cannot seem to create one, as I really wish I understood what I did wrong. As best I can tell I did not change sizing, though I did clean up real/int conversion in a few places that might have thown off something -- but on the other hand, none of that code ran between drawing the underlying thing, and the overlaying widget.

thank you very much for trying to help, d_stranz, I wish I had a more definitive answer.