PyQt5在同一个widget1中使用QMediaPlayer与label,label有可能被覆盖的原因

【问题描述】
使用pyqt5开发图形界面,需要在窗口里的相同位置显示视频与图片,即视频播放完后显示一张图片,我的想法是构建一个widget,该widgt作为QMediaPlayer的VedioOutput,再创建一个label作为widget的子控件,等播放完视频后再插入图片。代码如下:

# 控件初始化
self.widget1 = QtMultimediaWidgets.QVideoWidget(self.centralwidget)
self.widget1.setMinimumSize(QtCore.QSize(480, 400))
self.widget1.setAutoFillBackground(False)
self.widget1.setObjectName("widget1")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget1)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.img = QtWidgets.QLabel(self.widget1)
self.img.setMinimumSize(QtCore.QSize(704, 396))
self.img.setText("")
self.img.setScaledContents(True)
self.img.setObjectName("img")
self.horizontalLayout_2.addWidget(self.img)
...
# 设置流
self.mediaPlayer = QtMultimedia.QMediaPlayer(None, QtMultimedia.QMediaPlayer.VideoSurface)
self.mediaPlayer.setVideoOutput(self.widget1)
self.mediaPlayer.setNotifyInterval(1000)
self.widget1.show()
...
# 设置图像
self.image = QtGui.QPixmap(path)
self.img.setPixmap(self.image)
self.img.show()

在我本地电脑跑,播放完视频后是能出现图片的,但神奇的是我移到公共电脑之后,图像就会被视频覆盖,始终是黑屏无法显示,raise方法已经试过,没有效果。而本地电脑与公共电脑都是WIN10系统,python等版本也一致。

求大佬们指教这样情况可能的原因在哪里?非常感谢!

阅读 5.7k
2 个回答

检查发现pyqt5的版本不一致,将公共电脑上的倒退回5.9.2后正常了...感谢大家的解答

1.windows 上python32和64位是有差别的
2.window10 系统bug很多 再换台试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏