python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例


Posted in Python onFebruary 27, 2020

PyQt5图片显示控件QPixmap介绍

QPixmap类用于绘图设备的图像显示,它可以作为一个QPainterDevice对象,也可以加载到一个控件中,通常是标签或者按钮,用于在标签或按钮上显示图像

QPixmap可以读取的图像文件类型有BMP,GIF,JPG等

QPixmap类中常用的方法

方法 描述
copy() 从QRect对象复制到QPixmap对象
fromImage() 将QImage对象转换为QPixmap对象
grabWidget() 从给定的一个窗口小控件创建一个像素图
grabWindow() 在窗口创建数据的像素图
load() 加载图像文件作为QPixmap对象
save() 将QPixmap对象保存为文件
toImage() 将QPixmap对象转换为QImage对象

QPixmap的使用实例

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

class QpixmapDemo(QWidget):
  def __init__(self,parent=None):
    super(QpixmapDemo, self).__init__(parent)
    self.setWindowTitle('QPixmap例子')

    layout=QVBoxLayout()

    lab1=QLabel()
    lab1.setPixmap(QPixmap('\images\python.jpg'))

    layout.addWidget(lab1)

    self.setLayout(layout)

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

效果如图

python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例

代码分析

在这个例子中,使用setPixmap()将图像显示在QLabel上

lab1=QLabel()
    lab1.setPixmap(QPixmap('\images\python.jpg'))

QImage与QPixmap区别

不同平台,依赖、存储不同

QPixmap依赖于硬件,QImage不依赖于硬件。

在X11, Mac 以及 Symbian平台上。

QImage: 因为它是存储在客户端,往QImage上绘图比较快,但显示它则比较慢。QPixmap: 具体实现是依赖于系统的,它是存储在服务器端,往QPixmap上绘图比较慢,但显示它则比较快。但在Windows平台上则是是一样的,因为它们都存储在客户端,并不使用任何的GDI资源,可能看起来并没有多大区别。

目前的Qt会把QPixmap都存储在graphics memory中,这明显是依赖硬件的。因此我们对QPixmap的使用需要格外注意。

那么Qt为什么要这么做呢?很简单,设计之初QPixmap就是用来加速显示的,例如我们在paint的时候用QPixmap就会比用其他类的效果好许多。

用处分工不同

QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的。

当图片小的情况下,直接用QPixmap进行加载,画图时无所谓,当图片大的时候如果直接用QPixmap进行加载,会占很大的内存,一般一张几十K的图片,用QPixmap加载进来会放大很多倍,所以一般图片大的情况下,用QImage进行加载,然后转乘QPixmap用户绘制。QPixmap绘制效果是最好的。

总结:

对于显示小图片时,可以用QPixmap进行加载,绘画图片。当绘画大图片时候,此时最好实现QImage进行加载,因为QImage本身主要是为图像I/O、图片访问和像素修改而设计的,它可以实现对图片旋转、缩放等。然后通过QPixmap实现绘图。

本文详细介绍了PyQt5图片显示控件QPixmap详细使用方法与实例,还包括PyQt5中QImage控件与QPixmap控件的区别,更多关于这方面的知识请查看下面的相关链接

Python 相关文章推荐
python模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
python实现telnet客户端的方法
Apr 15 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
详解python中*号的用法
Oct 21 Python
pytorch 实现打印模型的参数值
Dec 30 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
如何使用python代码操作git代码
Feb 29 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 Python
使用Python拟合函数曲线
Apr 14 Python
python程序文件扩展名知识点详解
Feb 27 #Python
python读取多层嵌套文件夹中的文件实例
Feb 27 #Python
python统计文章中单词出现次数实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 #Python
Python如何使用OS模块调用cmd
Feb 27 #Python
You might like
基于mysql的论坛(5)
2006/10/09 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
Prototype Function对象 学习
2009/07/12 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
PHP PDO操作总结
2014/11/17 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
Vue2几种常见开局方式详解
2017/09/09 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
django foreignkey(外键)的实现
2019/07/29 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
外语专业毕业生自我评价分享
2013/10/05 职场文书
运动会通讯稿300字
2014/02/02 职场文书
股权转让意向书
2014/04/01 职场文书
应聘教师自荐书
2014/06/16 职场文书
班级标语大全
2014/06/21 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
处理canvas绘制图片模糊问题
2022/05/11 Javascript