Pyqt Pyside学习笔记

这两个其实差不多,但是我学的是Pyside

主要的教程来自于Github某大佬

期间踩过的坑:

1、无法直接打开.jpg格式的图片,需要借助opencv,注意这不是我程序的问题,这是Pyside一直以来的BUG,解决代码如下:

# 传进来的是图片的绝对路径
def direct_show_image(img):
    # 使用Qt自带的图像格式读取
    cv_img = img
    cv_img = cv2.imread(cv_img, -1)
    height, width, channel = cv_img.shape
    bytesPerline = 3 * width
    qImg = QImage(cv_img.data, width, height, bytesPerline, QImage.Format_RGB888).rgbSwapped()
    # 缩放以适应窗口大小,由于label.size()包含了显示区域和边界,因此要减去两边各1像素的边界
    pixmap = QPixmap.fromImage(qImg)
    # window是是实例化之后主窗口的名称
    pixmap = pixmap.scaled(window.label.size() - QSize(2, 2)) # 保证图片大小适应窗口
    # 在label上显示图像
    window.label.setPixmap(pixmap)

2、信号的使用
主线程会一直进行下去,但是有时候比如需要当某个任务处理完毕后自动播放视频,就需要在这个任务结束后告诉主程序进行某个操作(执行某个函数),主线程又不能一直监视某个变量是否发生改变,只能是发出一个信号提醒主线程,这个概念非常重要,它决定了整个窗口是否会流畅的运行!
信号(Signal),是pyqt(pyside)专门用来处理这个问题的类,要想进行这种操作,自己需要定义一个专门用来发送信号的类,这个类需要继承Signal,而且这个自定义的类是全局的,你在任何地方都可以使用emit()方法来发送这个信号

# 自定义信号源对象类型,用来感知yolo处理的状态
class MySignals(QObject):
    # emit(0)表示是视频,1 表示是图片
    yolo_state = Signal(int)


_state = MySignals()
# 在主窗口里面调用
 # 定义一个信号,用来判断yolo是否处理完毕
  _state.yolo_state.connect(self.check_video_image) # 绑定函数
  _state.yolo_state.emit(kind) #发出信号,就会调用这个函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5和PySide6是两个用于Python语言开发图形界面的库,它们都是基于Qt库的。Qt库是一个强大的图形界面开发库,但是它是用C++语言开发的。PyQt5和PySide6的本质上没有特别大的区别,但是Qt更倾向于PySide的开发和维护。PySide6是PySide2的升级版,它们之间的代码转化非常简单,只需要改几个函数和库就可以了。因为PyQtPySide诞生时间更早一些,所以网上关于PyQt5的资料和教程会多于PySide。安装完成PySide6后,可以在终端中输入"pip install PySide6"来查看PySide6的安装路径。复制路径后,可以在文件管理器中打开该路径。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [02、Pycharm中配置PyQt/PySide开发工具Qt Designer、PyUIC、PyRcc(详细)](https://blog.csdn.net/python_sy/article/details/127427968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [01、PyQt5/PySide6简介及安装方法](https://blog.csdn.net/python_sy/article/details/127425142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值