2017-03-06 3 views
1

Après avoir affiché une image sur une étiquette PyQt, je souhaite dessiner un rectangle au-dessus de l'image affichée. Notez que je ne veux pas dire «dessiner» comme si l'utilisateur «dessine» un rectangle sur l'image, mais je veux dire que je veux juste créer un rectangle au-dessus de l'image. J'ai le code équivalent pour les axes matplotlib mais je ne suis pas sûr de savoir comment faire la même chose dans PyQt.PyQt - comment superposer un rectangle sur une image

# Create Figure/Axes Instance 
figure,axes = matplotlib.pyplot.subplots() 
axes.imshow(imageRGB) 

# Draw Rectangle 
axes.add_patch(matplotlib.patches.Rectangle((50,50),100,100,fill=False,edgecolor='red')) 

Répondre

4
# convert image file into pixmap 
self.pixmap_image = QtGui.QPixmap(self.filename) 

# create painter instance with pixmap 
self.painterInstance = QtGui.QPainter(self.pixmap_image) 

# set rectangle color and thickness 
self.penRectangle = QtGui.QPen(QtCore.Qt.red) 
self.penRedBorder.setWidth(3) 

# draw rectangle on painter 
self.painterInstance.setPen(self.penRectangle) 
self.painterInstance.drawRect(xPos,yPos,xLen,yLen) 

# set pixmap onto the label widget 
self.ui.label_imageDisplay.setPixmap(self.pixmap_image) 
self.ui.label_imageDisplay.show()