PyQt5 QPixmap类
QPixmap 类提供了一个图像的屏幕外表示。它可以作为QPaintDevice对象使用,也可以被加载到另一个widget中,通常是一个标签或按钮。
Qt API有另一个类似的类 QImage ,它为I/O和其他像素操作进行了优化。另一方面,Pixmap则是为在屏幕上显示而优化的。这两种格式都是可以相互转换的。
可以读入QPixmap对象的图像文件类型如下
BMP | Windows位图 |
---|---|
GIF | 图形交换格式(可选) |
JPG | 联合摄影专家组 |
JPEG | 联合摄影专家组 |
PNG | 便携式网络图形 |
PBM | 便携式位图 |
PGM | 便携式灰度图 |
PPM | 便携式像素图 |
XBM | X11位图 |
XPM | X11像素图 |
以下方法在处理QPixmap对象时很有用—-。
序号 | 方法和描述 |
---|---|
1 | copy() 从QRect对象中复制像素图数据。 |
2 | fromImage() 将QImage对象转换为QPixmap |
3 | grabWidget() 从给定的widget创建一个像素图。 |
4 | grabWindow() 在一个窗口中创建数据的像素图 |
5 | Load() 将一个图像文件加载为像素图 |
6 | save() 将QPixmap对象保存为一个文件 |
7 | toImage 将一个QPixmap转换为QImage |
QPixmap最常见的用途是在一个标签/按钮上显示图像。
例子
下面的例子显示了通过使用 setPixmap() 方法在一个QLabel上显示图像。
完整的代码如下
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def window():
app = QApplication(sys.argv)
win = QWidget()
l1 = QLabel()
l1.setPixmap(QPixmap("python.png"))
vbox = QVBoxLayout()
vbox.addWidget(l1)
win.setLayout(vbox)
win.setWindowTitle("QPixmap Demo")
win.show()
sys.exit(app.exec_())
if __name__ == '__main__':
window()
上述代码产生了以下输出 —