Just an update: I ended up just using a "container widget" that holds the video widget. This way I can just add the container widget to the layout and detach the video widget from the container when going full screen. Then I just add it back to the container instead of trying to add it to the layout exactly as it was. In my case, I'm actually using a QStackedWidget as the "container" since I need to switch the video out with other views anyways. It works out perfectly. This project is really coming along nicely. I'm loving Qt right now. :)
As the solution suggested by @hskoglund is Windows-specific, I decided to first investigate a bit deeper the other options presented by @J-Hilk
It turned out that the Qt::WindowStaysOnTopHint flag was not set for our main window. I am now setting that flag in our main windows's constructor, and afterwards show it full screen. This seems to work.
Just to be clear, it's not app crash, I did not describe it good.
Sometimes fullscreen mode look messy(look at image), let say it's happening every 10th time.
But, I can exit from that messy fullscreen and video plays in normal mode.
Sounds like you may have found a regression. You should take a look at the bug report system to see if it's something known. If not please consider opening a new report providing a minimal compilable example showing the behavior