7. Capture d'écran
Pour ajouter une dernière fonction accessible au clavier, on se propose de faire une
capture de la vue dans un fichier image, ce fichier étant choisi par l'utilisateur. Le
raccourci clavier pour réaliser cette opération sera Ctrl+P.
…
from PyQt5.QtWidgets import QFileDialog
…
class VueMosaiQ(QGraphicsView):
…
def keyPressEvent(self,keyEvent):
…
elif keyEvent.modifiers() == Qt.ControlModifier \
and key == Qt.Key_P: (nomFichier,filtre) = QFileDialog.getSaveFileName(self,
"Sauvegarder image", filter="PNG (*.png);;JPEG (*.jpg);;BMP (*.bmp)") if
nomFichier: pixmap = self.grab() pixmap.save(nomFichier) …
Pour détecter la combinaison Ctrl+P, on utilise la méthode QKeyEvent.modifiers
qui indique si une touche spéciale (Ctrl, Shift, Alt, etc.) est enfoncée au moment de
l'événement principal sur le clavier (ici, action sur la touche P).
La méthode statique QFileDialog.getSaveFileName affiche une boîte de dialogue
standard permettant de choisir un fichier pour sauvegarder l'image ; on a défini des
filtres pour les extensions des fichiers graphiques aux formats PNG, JPEG et
BMP [16] .
Ce test est important pour sauter tout traitement si le bouton Annuler a été pressé.
La méthode grab() crée en mémoire une image de la vue, telle qu'elle est affichée à
l'écran, sans la barre de titre. L'objet créé est une instance de QPixmap, une classe
qui permet de stocker une image en mémoire pour être transformée, affichée ou
sauvegarder sur fichier.
On sauvegarde l'image dans un fichier avec le nom et le chemin donné. L'instance de
248
Pour ajouter une dernière fonction accessible au clavier, on se propose de faire une
capture de la vue dans un fichier image, ce fichier étant choisi par l'utilisateur. Le
raccourci clavier pour réaliser cette opération sera Ctrl+P.
…
from PyQt5.QtWidgets import QFileDialog
…
class VueMosaiQ(QGraphicsView):
…
def keyPressEvent(self,keyEvent):
…
elif keyEvent.modifiers() == Qt.ControlModifier \
and key == Qt.Key_P: (nomFichier,filtre) = QFileDialog.getSaveFileName(self,
"Sauvegarder image", filter="PNG (*.png);;JPEG (*.jpg);;BMP (*.bmp)") if
nomFichier: pixmap = self.grab() pixmap.save(nomFichier) …
Pour détecter la combinaison Ctrl+P, on utilise la méthode QKeyEvent.modifiers
qui indique si une touche spéciale (Ctrl, Shift, Alt, etc.) est enfoncée au moment de
l'événement principal sur le clavier (ici, action sur la touche P).
La méthode statique QFileDialog.getSaveFileName affiche une boîte de dialogue
standard permettant de choisir un fichier pour sauvegarder l'image ; on a défini des
filtres pour les extensions des fichiers graphiques aux formats PNG, JPEG et
BMP [16] .
Ce test est important pour sauter tout traitement si le bouton Annuler a été pressé.
La méthode grab() crée en mémoire une image de la vue, telle qu'elle est affichée à
l'écran, sans la barre de titre. L'objet créé est une instance de QPixmap, une classe
qui permet de stocker une image en mémoire pour être transformée, affichée ou
sauvegarder sur fichier.
On sauvegarde l'image dans un fichier avec le nom et le chemin donné. L'instance de
248
