[Python] Dialogue message étendu

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur: Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.

[Python] Dialogue message étendu

Messagepar bm92 » 31 Mars 2015 14:32

En complément du message de Dude [Basic] Dialogue message étendu, voici un exemple d'utilisation de l'interface XMessageBoxFactory en Python.

Dans ce script MsgBox.py la macro TestMessageBox() boucle sur l'affichage d'un message et l'affichage de la réponse utilisateur, jusqu'à ce qu'il clique le bouton Non. Un document doit être ouvert.
Code : Tout sélectionner   AgrandirRéduire
import uno

from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK, BUTTONS_OK_CANCEL, BUTTONS_YES_NO, BUTTONS_YES_NO_CANCEL, BUTTONS_RETRY_CANCEL, BUTTONS_ABORT_IGNORE_RETRY
from com.sun.star.awt.MessageBoxButtons import DEFAULT_BUTTON_OK, DEFAULT_BUTTON_CANCEL, DEFAULT_BUTTON_RETRY, DEFAULT_BUTTON_YES, DEFAULT_BUTTON_NO, DEFAULT_BUTTON_IGNORE

from com.sun.star.awt.MessageBoxType import MESSAGEBOX, INFOBOX, WARNINGBOX, ERRORBOX, QUERYBOX
# renommer les valeurs pour eviter possibles ambiguites
from com.sun.star.awt.MessageBoxResults import YES as MBR_YES, NO as MBR_NO, CANCEL as MBR_CANCEL

# Message box utilisant le Toolkit de l'API
def MessageBox(ParentWin, MsgText, MsgTitle, MsgType=MESSAGEBOX, MsgButtons=BUTTONS_OK):

  ctx = uno.getComponentContext()
  sm = ctx.ServiceManager
  sv = sm.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx)
  maBoite = sv.createMessageBox(ParentWin, MsgType, MsgButtons, MsgTitle, MsgText)
  return maBoite.execute()


def TestMessageBox():
  doc = XSCRIPTCONTEXT.getDocument()
  parentwin = doc.CurrentController.Frame.ContainerWindow

  res = MBR_YES
  while res != MBR_NO:
    s = "Voulez-vous continuer ?"
    t = "Un message de Python"
    res = MessageBox(parentwin, s, t, QUERYBOX, BUTTONS_YES_NO_CANCEL + DEFAULT_BUTTON_NO)

    s = "Reponse : " +str(res)
    MessageBox(parentwin, s, t, INFOBOX)

g_exportedScripts = TestMessageBox,
Pièces jointes
MessagePython.zip
Contient le script Python
(744 octet(s)) Téléchargé 59 fois
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
bm92
ManitOOu
ManitOOu
 
Message(s) : 2562
Inscrit le : 26 Nov 2005 14:42

Retour vers Suprême de code

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité