Hay tantas opciones proporcionadas por Python para desarrollar una aplicación GUI y PyQt5 es una de ellas. PyQt5 es un kit de herramientas GUI multiplataforma, un conjunto de enlaces de Python para Qt v5. Uno puede desarrollar una aplicación de escritorio interactiva con tanta facilidad debido a las herramientas y la simplicidad que ofrece esta biblioteca.
En este tutorial, veremos cómo guardar lienzos en pyqt5. Dibujamos cosas en lienzo usando la clase QPainter .
QPainter: el sistema de pintura de Qt puede renderizar gráficos vectoriales, imágenes y delinear texto basado en fuentes con una precisión de subpíxeles usando suavizado para mejorar la calidad de renderizado.
En este artículo, creamos un lienzo y dibujaremos una línea en él y veremos cómo guardar ese lienzo como archivo de imagen en la ubicación deseada en el sistema. A continuación se muestra la implementación.
Python3
# importing modules from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * import sys # creating class for window class Window(QMainWindow): def __init__(self): super().__init__() title = "Paint and save Application" top = 400 left = 400 width = 800 height = 600 # setting title of window self.setWindowTitle(title) # setting geometry self.setGeometry(top, left, width, height) # creating canvas self.image = QImage(self.size(), QImage.Format_RGB32) # setting canvas color to white self.image.fill(Qt.white) # creating menu bar mainMenu = self.menuBar() # adding file menu in it fileMenu = mainMenu.addMenu("File") # creating save action saveAction = QAction("Save", self) # setting save action shortcut saveAction.setShortcut("Ctrl + S") # adding save action to filemenu fileMenu.addAction(saveAction) # setting triggered method saveAction.triggered.connect(self.save) # calling draw_something method self.draw_something() # paintEvent for creating blank canvas def paintEvent(self, event): canvasPainter = QPainter(self) canvasPainter.drawImage(self.rect(), self.image, self.image.rect()) # this method will draw a line def draw_something(self): painter = QPainter(self.image) painter.setPen(QPen(Qt.black, 5, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin)) # drawing a line painter.drawLine(100, 100, 300, 300) # updating it to canvas self.update() # save method def save(self): # selecting file path filePath, _ = QFileDialog.getSaveFileName(self, "Save Image", "", "PNG(*.png);;JPEG(*.jpg *.jpeg);;All Files(*.*) ") # if file path is blank return back if filePath == "": return # saving canvas at desired path self.image.save(filePath) # main method if __name__ == "__main__": app = QApplication(sys.argv) window = Window() window.show() # looping for window sys.exit(app.exec())
Salida:
Después de ejecutar la ventana de código aparecerá con un lienzo de color blanco en el que se dibuja la línea.
Después de hacer clic en el menú Archivo, aparecerá el botón Guardar.
Cuando se presiona el botón Guardar, se le pedirá la ubicación y el nombre y la imagen se guardarán en la ubicación deseada.
Este código guardará el lienzo en formato png en la ubicación deseada.
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA