我猜是因为mplayer是获得窗口ID,把视频直接画到对应的窗口上,也就是相当于qt画图的时候先画背景,再画控件,此时背景没有任何显示,当然是黑色的,等qt画完了之后,mplayer通过窗口系统的接口,把视频画面覆盖到qt的窗口上,这里就存在几个可能,
1)这个时候没有通知qt重绘画面,所以qt并不知道画面被修改了,所以就不会有任何绘制动作;
或者2)qt4默认采用的是双缓冲,所以先在自己的缓存绘图,然后再画到屏幕上,而由于qt并不知道屏幕上的内容被改过了,自然就不会更新缓存,这样控件就认为自己的背景仍然是黑色的
或者3)qt用于显示视频的窗口是禁止了paint动作的,这样控件的背景肯定就是默认的背景色黑色了