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 encode和decode的妙用
Sep 02 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
python爬虫获取新浪新闻教学
Dec 23 Python
python 求定积分和不定积分示例
Nov 20 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
python异常中else的实例用法
Jun 15 Python
Pandas数据结构之Series的使用
Mar 31 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
Node.js的特点详解
2017/02/03 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
世界最大的票务市场:viagogo
2017/02/16 全球购物
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
自我鉴定范文200字
2013/10/02 职场文书
家具商场的活动方案
2014/08/16 职场文书
建议书格式
2015/02/04 职场文书
清洁员岗位职责
2015/02/15 职场文书
楚门的世界观后感
2015/06/03 职场文书
Golang gRPC HTTP协议转换示例
2022/06/16 Golang