PyQt5注意问题
本篇所写的就是在做项目的时候,使用PyQt5所遇到的问题
- 显示图片有两种方式,一种是使用Qlabel显示,一种是Graphicsview控件显示。
Qlabel可以显示文字,GIF,图片
pix = QPixmap('1.jpg')
lb1 = QLabel(self)
lb1.setGeometry(0,0,300,200)
lb1.setStyleSheet("border: 2px solid red") #红色边框
lb1.setPixmap(pix)
lb2 = QLabel(self)
lb2.setGeometry(0,250,300,200)
lb2.setPixmap(pix)
lb2.setStyleSheet("border: 2px solid red") #红色边框
lb2.setScaledContents(True)
用Graphicsview控件,首先使用OpenCV获取原图像矩阵img。调用的时候就调用
display_in_graphicsview(img) 即可。需要先创建一个QImage类的对象,输入参数见下面的程序。并且需要创建一个场景,把像素图元放进去,再显示出来。
def display_in_graphicsview(self,img):
x = img.shape[1] # 获取图像大小
y = img.shape[0]
channel = img.shape[2]
bytesperline = channel * x
self.zoomscale = 1 # 图片放缩尺度
frame = QImage(img.data, x, y, bytesperline, QImage.Format_RGB888)
pix = QPixmap.fromImage(frame)
self.item = QGraphicsPixmapItem(pix) # 创建像素图元
self.item.setScale(self.zoomscale)
self.scene = QGraphicsScene() # 创建场景
self.scene.addItem(self.item)
self.graphicsView.setScene(self.scene)
self.graphicsView.show()