@Chris-Kawa
Curioser and Curioser. I took Chiri's advice and moved the code into closeEvent and first showEvent. Nothing changed. Except on further instpection I see the bogus position changes from -3,30 to -6,60, -9, 90 etc. I neglected to say I am running this from qtCreator, so I don't know if this affects things; it doesn't on windows.
So I started to hook moveEvent, resizeEvent. and mouseMoveEvent. Interestingly resizeEvents and mouseMoveEvents work perfectly, but I am not getting moveEvents at all, even though I can move the windoews with a mouse.
So I am about at the end of the road on this. I'm saying to myself 'it just doesn't work right using WSL'. I'd be interested if anyone is doing this using WSL and says 'yes it works' or has repoduced this using an app with a single widget and sees if they get moveEvents or get reasoanable values from pos(). I may get an old real Linux box out of storage sometime and see if it works - but I would expect it does, it worked the last time I tried it, but that was back in the days of qt5 and I'm now running qt6.5.0.
Thanks for the advice,
David