前段时间自己在视频直播项目中遇到的关于使用第三方渲染库造成界面闪烁的问题,现在写下来希望能帮助到遇到类似问题的小伙伴。
产生闪烁的主要原因是由于Qt自身的渲染引擎和第三方库渲染冲突造成,只要屏蔽掉Qt自身渲染引擎即可解决问题,方法如下:
- 重写自己要被第三方库渲染的控件,在其构造函数中添加如下代码:
setAttribute(Qt::WA_PaintOnScreen,true);
- 重新实现父类虚函数
QPaintEngine* paintEngine()const; 具体如下: QPaintEngine* PreviewLabel::paintEngine()const { return 0; }
好了,到此就可以解决视频闪烁问题了,赶紧试试吧!^-^