• pyqt5设置背景图片


    PyQt5设置背景图片

    1、打开QTDesigner

    在这里插入图片描述

    创建一个UIcamera.ui

    2、创建一个pictures.qrc文件

    在ui文件同级目录下先创建一个pictures.txt,填写内容:

    
      
        1.jpg
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    如图:
    在这里插入图片描述

    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 sys
    
    import cv2
    from PyQt5 import QtCore
    from PyQt5 import QtWidgets, QtGui
    from PyQt5.QtGui import QPixmap, QImage
    
    from camera import Ui_MainWindow
    
    
    class 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 = False
            cap = cv2.VideoCapture(0)
            w, h = 640, 360
    
            cap.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,要转成RGB
    
                self.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 camera
            cap.release()
            self.label_video.clear()  # 清除label组件上的图片
    
        def close_camera(self):
            # 关闭摄像头
            self.is_close = True
    
    
    if __name__ == '__main__':
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)  # 自适应分辨率
    
        app = QtWidgets.QApplication(sys.argv)
        ui = OpenCamera()
        ui.show()
        sys.exit(app.exec_())
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78

    6、效果图

    在这里插入图片描述

  • 相关阅读:
    全网最通透:MySQL 的 redo log 保证数据不丢的原理
    微服务化解决文库下载业务问题实践
    iOS面试准备 - 其他篇
    MySQL-慢查询日志
    互斥量保护资源
    Docker 与 Linux Cgroups:资源隔离的魔法之旅
    零基础学习JS--基础篇--元编程
    RabbitMQ系列【11】延迟队列
    【LeetCode】string 类的几道简单题
    ndk的坑
  • 原文地址:https://blog.csdn.net/lm_is_dc/article/details/132784648