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

发布于 2022-09-11 15:50:20 字数 1174 浏览 18 评论 0

【问题描述】
使用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等版本也一致。

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

缘字诀 2022-09-18 15:50:21

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

眼眸 2022-09-18 15:50:21

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文