PyQt5设置背景图片
1、打开QTDesigner
创建一个UI,camera.ui
。
2、创建一个pictures.qrc文件
在ui文件同级目录下先创建一个pictures.txt
,填写内容:
<RCC><qresource prefix="media"><file>1.jpg</file></qresource>
</RCC>
如图:
3、添加背景图片
3.1、选择label控件
并命名为label_video
3.2、选中label,右键->改变样式表->添加资源->background-image
3.3、添加pictures.qrc
3.4、添加前缀
3.5、添加背景图
3.6、保存
4、转py文件
4.1、把UI转成py文件
4.2、把qrc转py文件
4.3、项目目录
5、打开摄像头代码
# !/usr/bin/python
# -*- coding: utf-8 -*-"""
@contact: 微信 1257309054
@file: t.py
@time: 2023/9/10 0:16
@author: LDC
"""import sysimport cv2
from PyQt5 import QtCore
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtGui import QPixmap, QImagefrom camera import Ui_MainWindowclass OpenCamera(QtWidgets.QMainWindow, Ui_MainWindow):def __init__(self):super(OpenCamera, self).__init__()self.setupUi(self) # 创建窗体对象self.init()self.label_video.setScaledContents(True) # 图片自适应def init(self):# 打开摄像头self.btn_open_camera.clicked.connect(self.open_camera)# 关闭摄像头self.btn_close_camera.clicked.connect(self.close_camera)def open_camera(self):# 打开摄像头self.is_close = Falsecap = cv2.VideoCapture(0)w, h = 640, 360cap.set(3, w)cap.set(4, h)while True:success, img = cap.read()mirrow = cv2.flip(img, 1)width, height = mirrow.shape[:2] # 行:宽,列:高if cv2.waitKey(1) == 27:break# 显示图片image_show = cv2.cvtColor(mirrow, cv2.COLOR_BGR2RGB) # opencv读的通道是BGR,要转成RGBself.showImage = QtGui.QImage(image_show.data, height, width, QImage.Format_RGB888)self.label_video.setPixmap(QPixmap.fromImage(self.showImage)) # 往显示视频的Label里显示QImage# 是否关闭摄像头if self.is_close:break# 释放摄像头 release cameracap.release()self.label_video.clear() # 清除label组件上的图片def close_camera(self):# 关闭摄像头self.is_close = Trueif __name__ == '__main__':QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) # 自适应分辨率app = QtWidgets.QApplication(sys.argv)ui = OpenCamera()ui.show()sys.exit(app.exec_())