播放器的一个功能是全屏时隐藏所有的控件,并在鼠标移动时显示控制窗口(就下面那些播放暂停什么的),此时如果单纯用QWidget->show()会使得原先设置的布局将视频窗口挤压,就不好看了。
所以,可以控制当全屏的时候将控制栏暂时移出布局,而退出全屏时回归布局,方法如下:
点击全屏按钮,需要:
此时,控制栏变成一个独立的窗口,需要对它作一定的调整以适合全屏,同时保留他和源窗口的父子关系,不影响布局的情况下可以一并响应源窗口的所有事件(鼠标键盘啥的)。
退出全屏时,只需要:
效果图:没有全屏时:
全屏后:
看起来其实挺简单的,但是由于这东西网上好像没有啥资料,就自己写一写啦。