使用PySide在QLabel中显示视频流

使用PySide在QLabel中显示视频流,第1张

使用PySide在QLabel中显示视频流

供以后参考,这是我如何使它工作的方法。

使用信号插槽机制,以下应用程序可以工作。信号/插槽机制似乎弄清楚了在up_camera_callback函数内部创建并发送到CameraDisplay.updateframe函数的图像来自其他线程,并采取了必要的预防措施。

class CameraDisplay(QtGui.QLabel):  def __init__(self):    super(CameraDisplay, self).__init__()  def updateframe(self, image):    self.setPixmap(QtGui.QPixmap.fromImage(image))class ControlCenter(QtGui.QWidget):  up_camera_signal = QtCore.Signal(QtGui.QImage)  up_camera = None  def __init__(self):    super(ControlCenter, self).__init__()    self.up_camera = CameraDisplay()    self.up_camera_signal.connect(self.up_camera.updateframe)    grid = QtGui.QGridLayout()    grid.setSpacing(10)    grid.addWidget(self.up_camera, 0, 0)    self.setLayout(grid)    self.setGeometry(300, 300, 350, 300)    self.setWindowTitle('Control Center')    self.show()  def up_camera_callback(self, data):    '''This function gets called by an external thread'''    try:      image = QtGui.QImage(data.data, data.width, data.height, QtGui.QImage.Format_RGB888)      self.up_camera_signal.emit(image)    except Exception, e:      print(e)if __name__ == "__main__":  app = QtGui.QApplication(sys.argv)  ex = ControlCenter()  sys.exit(app.exec_())


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5649046.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存