12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from PyQt5.QtWidgets import QDialog
- from PyQt5.QtGui import QImage,QPixmap
- from ui.traffic_ui import Ui_renwu
- from dev.camera import CameraDev #dev 路径名 camera 函数名
- class Win(QDialog): #扩展QDialog(新增,覆盖功能)
- def __init__(self): #实现构造器(完成初始化,数据初始化,功能初始化)
- super(Win,self).__init__() #调用父类构造器
- #调用ui
- #创建对象
- self.ui = Ui_renwu()
- #关联Ui到当前窗体
- self.ui.setupUi(self)
- #创建一个设备对象
- self.dev = CameraDev()
- #启动设备线程工作
- self.dev.start()
- #绑定信号与槽
- self.dev.signal_video.connect(self.showVideo)
- #定义槽(slot)函数 (Qt技术:信号与槽),一定与信号同型
- def showVideo(self,data,h,w,c):
- #print("(",h,",",w,",",c,")") #python 格式字符串
- #1. 使用data h,w c创建
- q_img = QImage(
- data, #图像字节数组
- w, #图像宽度
- h, #图像高度
- w*c, #图像每行字节数
- QImage.Format_BGR888 #图像格式BGR 每个通道8个bit 1个字节
- ) #图片格式是bgr
- # 2.使用QPixmage创建QPixmap
- pix_img = QPixmap.fromImage(q_img)
- #3. 显示QLable 创建self.lblvideo
- self.ui.lblvideo.setPixmap(pix_img)
- # 4.适当的缩放
- self.ui.lblvideo.setScaledContents(True)
|