图像类:QPixmap,QImage,QPicture,QBitmap
- QPixmap是专门为绘图而设计的,在绘制图片时需要使用QPixmap
- QImage提供了一个与硬件无关的图像表示函数,可以用于图片的像素级访问
- QPicture是一个绘图设备类,它继承自QPainter类,可以使用QPainter的begin()函数在QPicture上绘图,使用end()函数结束绘图,使用QPicture的save()函数将Qpainter所使用过的绘图指令保存到文件中
- QBitmap是一个继承QPixmap的简单类,它提供了1bit深度的二值图像的类,QBitmap提供的单色图像,可以用来制作游标(QCursor)或者笔刷(QBrush)
QImage
img = cv2.imread(img_path)
showImage = QImage(img.data, img.shape[1], img.shape[0],
QImage.Format_RGB888) # 把读取到的图片数据变成QImage形式
# 往显示视频的Label里 显示QImage
label.setPixmap(QPixmap.fromImage(showImage))
QImage的32、24、8位图
Format_RGB32 ,Format_RGB888,Format_Indexed8
QImage(img2[:],img2.shape[1], img2.shape[0],img2.shape[1] * 3, QtGui.QImage.Format_RGB888)
注意:QImage(uchar * data, int width, int height, int bytesPerLine, Format format)
中的bytesPerLine 参数不能省略,负责造成Qimage数据错误,显示图片不正常,此参数设置为image的width*image.channels
QPixmap
# 显示图片
self.img_show.setPixmap(QPixmap(file_path))
self.img_show.setScaledContents(True)
QPicture
label = QLabel()
label.setStyleSheet()
label.move()
label.resize()
label.adjustSize()
对齐
alignment
setAligment(alignment)
缩进与边距
setIndent(int)
setMargin(int)
文本格式
解析富文本
setTextFormat()
textFormat
其他控件绑定
buddy() ---> QWidget
setBuddy(QWidget buddy()
内容缩放(图片)
- hasScaledContents0 -> bool
- setScaledContents(bool)
- 缩放内容,适应控件大小。针对于图片有效
self.img_show.setPixmap(QPixmap(file_path))
self.img_show.setScaledContents(True)
#label.adjustSize() # 窗口适应图片
label.setScaledContents(True) # 图片适应QLabel
文本交互标志
label.setTextInteractionFlags(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard)
链接和换行
label = QLabel("<a href='https://www.baidu.com'>百度</a>", self)
label.setOpenExternalLinks(True)
内容操作
- 文本字符串:label.setText()
- 数值数据:label.setNum()
- 图形图像:label.setPicture() 、label.setPixmap()
- 动图:label.setMovie()
- 清空:label.clear()
信号