首页 > python教程

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

时间:2020-08-11 python教程 查看: 959

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_())

效果如图

代码分析

在这个例子中,使用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脚本实现mp4中的音频提取并保存在原目录
下一篇:Python对称的二叉树多种思路实现方法
输入字:
相关知识
Python 实现图片色彩转换案例

我们在看动漫、影视作品中,当人物在回忆过程中,体现出来的画面一般都是黑白或者褐色的。本文将提供将图片色彩转为黑白或者褐色风格的案例详解,感兴趣的小伙伴可以了解一下。

python初学定义函数

这篇文章主要为大家介绍了python的定义函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助

图文详解Python如何导入自己编写的py文件

有时候自己写了一个py文件,想要把它导入到另一个py文件里面,所以下面这篇文章主要给大家介绍了关于Python如何导入自己编写的py文件的相关资料,需要的朋友可以参考下

python二分法查找实例代码

二分算法是一种效率比较高的查找算法,其输入的是一个有序的元素列表,如果查找元素包含在列表中,二分查找返回其位置,否则返回NONE,下面这篇文章主要给大家介绍了关于python二分法查找的相关资料,需要的朋友可以参考下