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制作爬虫采集小说
Oct 25 Python
python中实现迭代器(iterator)的方法示例
Jan 19 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python过滤txt文件内重复内容的方法
Oct 21 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
python中下标和切片的使用方法解析
Aug 27 Python
python datetime中strptime用法详解
Aug 29 Python
用Python开发app后端有优势吗
Jun 29 Python
python excel多行合并的方法
Dec 09 Python
python 实现Requests发送带cookies的请求
Feb 08 Python
如何用Python搭建gRPC服务
Jun 30 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
超级简单的发送邮件程序
2006/10/09 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
异步加载script的代码
2011/01/12 Javascript
javascript数组的使用
2013/03/28 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
详解Python当中的字符串和编码
2015/04/25 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
计算机应用与科学个人的自我评价
2013/11/15 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
网吧温馨提示
2015/07/17 职场文书