PyQT5基本操作

导包:

import sys
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets, QtCore, QtGui

from first_ui import Ui_MainWindow # 前端UI界面代码

固定写法:

class MyUi(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = MyUi()
    ui.show()
    sys.exit(app.exec_())

按键点击事件关联对象:

self.pushButton.clicked.connect(self.add)

label显示文本内容:

self.mylabel.setText(str(self.add_time))

按钮关联打开文件:

file_name, _ = QFileDialog.getOpenFileName(self, '请选择图片', '.', 
                                            '图像文件(*.jpg *.jpeg *.png)')  
# 打开图片,第一个参数为父类,
#2为QFileDialog对话框标题,
#3为“C:\”默认打开的目录,‘.’代表程序运行的目录,‘/’代表当前盘下的根目录,
#4为文件扩展名过滤器

video_name, _ = QFileDialog.getOpenFileName(self, '请选择视频', '.',
                                             '视频文件(*.avi *.mp4 *.wmv)')

加载图片并自定义展示尺寸(缩放为label框大小):

image = QtGui.QPixmap(file_name).scaled(self.imglabel.width(), self.imglabel.height())

在label上显示图片:

self.imglabel.setPixmap(image)  

弹出QT警告框:

QtWidgets.QMessageBox.warning(
                        self, u"Warning", u"打开视频失败",
                        buttons=QtWidgets.QMessageBox.Ok,
                        defaultButton=QtWidgets.QMessageBox.Ok
# unicode避免乱码

计时器QtCore.QTimer的用法;

self.timer = QtCore.QTimer() # 初始化定时器
self.timer.start(30) # 每隔30ms触发一次动作
self.timer.timeout.connect(self.open_frame) # 关联动作

def open_frame(self):
    ret, image = self.cap.read()
    if ret:
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        # 根据image创建pyqt5中的图片.
        video_frame = QtGui.QImage(image.data, image.shape[1], image.shape[0],
                     QtGui.QImage.Format_RGB888)
        self.imglabel.setPixmap(QtGui.QPixmap(video_frame))
        self.imglabel.setScaledContents(True)  # 自适应窗口大小
    else:
        self.cap.release()
        self.timer.stop()      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值