使用QMediaPlayer时出现"QWidget::paintEngine: Should no longer be called"

"QWidget::paintEngine: Should no longer be called" appears when using QMediaPlayer

我实现了这样的播放媒体文件的小部件:

.h file

.cpp file

如果你想在你的环境中编译它,你还应该复制这个文件:mediaslider.h mediaslider.cpp 并在你的 .pro 文件中添加多媒体和多媒体小部件

它只是像 Qt 文档中的示例一样使用 QMediaPlayer 和 QVideoWidget。

我这样创建小部件:

MediaPlayerWidget player;

player.setSource(
"path_to_videofile");

player.show();

一切正常,但是当我调整 window 的大小时,它会出现在控制台中的下一个文本:

QWidget::paintEngine: Should no longer be called

这是怎么回事?我没有打电话给 QWidget::paintEngine。是 Qt 错误吗?

是的,这是一个 Qt 错误。 QWidget::paintEngine 是 for Qt core internal use only 但 QMediaPlayer 似乎正在使用它,可能是通过在库内某个位置设置的 WA_PaintOnScreen 标志间接使用的。

为了它的价值,you are not the only person to notice this issue,如果玩家正常工作,可以相当安全地忽略警告。随着时间的推移,未来的 Qt 更新可能会解决此问题。