Macros/Python Guide/fr/1stmacro

From The Document Foundation Wiki
< Macros‎ | Python Guide‎ | fr
Jump to: navigation, search

Environnement de développement |Table des matières| Principes de base

Ma première macro

Comment écrire une première macro en python et l'exécuter ?


Nous allons créer une première macro qui va afficher une boite de dialogue de titre «Python» avec le message «Bonjour à tous».

Gestion de la révision de version

Initialisation de l'historisation

Si vous avez la révision de versions git déjà initialisée :

  • sous Linux
#Se positionner dans le répertoire des macros
cd ~/.config/libreoffice/4/user/Scripts/python
#afficher les modifications du dépot distant à récupérer
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git fetch
#mise à jour du dépot local avec le dépot distant
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git checkout master
  Déjà sur 'master'
#afficher le résultat de la mise à jour
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git log
  commit 14e26fbbbd49e67a5fd1ba1390482ee4df142f49
  Author: Franc SERRES <sefran007@gmail.com>
  Date:   Fri Mar 3 10:23:35 2017 +0100
  
      Initialisation du dépot de macros python

Si vous avez des problèmes à ce stade de la mise à jours du dépot local git

Vous pouvez maintenant continuer sur comment éditer le fichier en cliquant ici

Mise à jour de l'historisation de vos modifications

  • sous Linux
#Voir l'état des modifications
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git status
  Sur la branche master
  Modifications qui ne seront pas validées :
    (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
    (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)
  
          modifié :         bonjour.py
  
  aucune modification n''a été ajoutée à la validation (utilisez "git add" ou "git commit -a")
#Voir ce qui a été modifié
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git diff
  diff --git a/bonjour.py b/bonjour.py
  index 26c654b..2d58594 100644
  --- a/bonjour.py
  +++ b/bonjour.py
  @@ -5,6 +5,7 @@
   #Auteur: Franc SERRES
   #Licence: https://www.gnu.org/licenses/gpl-3.0.fr.html
   
  +
   import uno
   from com.sun.star.awt.MessageBoxType import MESSAGEBOX
       #Typedeboite :
  @@ -32,3 +33,5 @@ def bonjour():
       #  CANCEL/Retry/Ignore : 6
       boîtemessage = boîteàoutils.createMessageBox(fenêtre, MESSAGEBOX, 1, titre, message)
       return boîtemessage.execute()
  +
  +g_exportedScripts = bonjour,
#Indexer les modifications
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git add bonjour.py
#Voir l'état des modifications
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git status
  Sur la branche master
  Modifications qui seront validées :
    (utilisez "git reset HEAD <fichier>..." pour désindexer)
  
          modifié :         bonjour.py
#historisation dans le dépot local
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git commit -m 'Ce que vous avez modifié dans bonjour.py'
  [master bc0bdbe] Ce que vous avez modifié dans bonjour.py
   1 file changed, 3 insertions(+)
#mise à jour des informations entre le dépot local et distant
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git fetch
#ce que vous pouvez mettre à jour
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git log origin/master..
  commit bc0bdbe4d2a1b5713ceee270f986cb1334fa64fc
  Author: Franc SERRES <sefran007@gmail.com>
  Date:   Sun Mar 5 23:21:10 2017 +0100
  
      Ce que vous avez modifié dans bonjour.py
  
#mise à jour du dépot distant
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git push origin master
  Décompte des objets: 3, fait.
  Delta compression using up to 4 threads.
  Compression des objets: 100% (3/3), fait.
  Écriture des objets: 100% (3/3), 350 bytes | 0 bytes/s, fait.
  Total 3 (delta 2), reused 0 (delta 0)
  To file:///srv/git/macros.git
     14e26fb..bc0bdbe  master -> master

Lancement de l'éditeur

Pour cela ouvrez le menu dans LibreOffice :

 Outils/Macros/Gérer les scripts python ou au clavier Alt+Maj+F11 
Lancer l'extension

Dans la boite de dialogue Scripts python :

La fenêtre principale de l'extension
  1. Sélectionnez avec la souris la liste Mes macros
  2. Cliquez sur le bouton Menu et sélectionnez le menu Nouveau module
    Ajouter une nouvelle macro
  3. Dans la boite de saisie Nom du module à créer saisissez bonjour
    Saisie du nom de la macro
  4. Sélectionnez dans la liste Mes macros avec la souris le module bonjour nouvellement créé.
  5. Cliquez sur le bouton Menu et sélectionnez le menu Modifier
    Pour modifier une macro python

Votre éditeur python s'ouvre avec le fichier bonjour.py

Édition de la macro

Coder sa macro python

Nous devons d'abord saisir des informations sur le fichier dans l'entête du fichier :

#!
#coding: utf8
#Macro: bonjour.py
#Objectif: Affiche une boîte de dialogue avec le message «Bonjour à tous»
#Auteur: Franc SERRES
#Licence: https://www.gnu.org/licenses/gpl-3.0.fr.html

On charge dans python la bibliothèque pyuno

import uno

On récupère le type de boite de dialogue à afficher

 from com.sun.star.awt.MessageBoxType import MESSAGEBOX
 #Typedeboite :
 #  Boite de message      : MESSAGEBOX
 #  Boite d'information   : INFOBOX
 #  Boite d'erreur        : ERRORBOX
 #  Boite d'alerte        : WARNINGBOX
 #  Boite d'interrogation : QUERYBOX

Et on écrit la fonction bonjour()

 def bonjour():
   #Python s'exécute dans un contexte différent de celle du bureau.
   #XSCRIPTCONTEXT récupère le contexte qui va nous autoriser à mettre en place des services de LibreOffice.
   #getDesktop() Renvoie le service de gestion du bureau de LibreOffice
   bureau = XSCRIPTCONTEXT.getDesktop()
   #Récupération du cadre de la fenêtre du bureau qui contient les objets du bureau.
   cadre = bureau.getCurrentFrame()
   #Récupération de l'objet de la fenêtre
   fenêtre = cadre.getContainerWindow()
   #Récupération des outils de gestion de la fenêtre
   boîteàoutils = fenêtre.getToolkit()
   titre = "Python"
   message = "Bonjour à tous !"
   #Création d'une boîte de dialogue.
   boîtemessage = boîteàoutils.createMessageBox(fenêtre, MESSAGEBOX, 1, titre, message)
   # boîtemessage = boîteàoutils.createMessageBox(fenêtreapplication, Typedeboite, Typedebouton, titreboîteàmessage, messageboîte)
   #
   #Typedebouton :
   #  OK                  : 1
   #  OK/CANCEL           : 2
   #  Oui/Non             : 3
   #  Oui/Non/CANCEL      : 4
   #  Retry/CANCEL        : 5
   #  CANCEL/Retry/Ignore : 6
   return boîtemessage.execute()


Exécuter la macro

Puis on exécute la macro avec le bouton «Exécuter».

Avec l'extension APSO :

Exécution de bonjour.py avec le bouton Exécuter

ou avec le gestionaire standard de macro LibreOffice :

Exécution de la macro bonjour.py avec le bouton Exécuter

Ce qui nous nous donne :

Le résultat de l'exécution de bonjour.py


Vous pouvez maintenant archiver vos modifications


Environnement de développement | Principes de base