Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

LibreOffice Base - Python


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    mars 2010
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2010
    Messages : 153
    Points : 91
    Points
    91
    Par défaut LibreOffice Base - Python
    Bonsoir,

    Je suis en train d' essayer de comprendre le fonctionnement de LO et de Python. J' ai voulu tester un petit programme python déclanché par l' appui sur un bouton de formulaire mais, j' ai une erreur. Visiblement et sous réserve d' avoir compris le message, c' est l' événement qui ne fonctionne pas. Le but est d' afficher le résultat dans le formulaire.
    Bon, je sais que ce problème n' est vraiment pas transcendant, mais j' en suis au tout début de python.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/env python3
     
    from uno import *
     
    a = 5; b = 8
    x = a + b
    def clic(event):
        frm = event.Source.getModel().getParent()
        nmcln = frm.findColumn('Total')
        sTotal = oForm.getString(nmcln)
        sTotal = x
    clic()
    Et voici le message d' erreur:
    une erreur de structure de script c' est produite lors de l' exécution du script vnd.sun.star.script:Calcul.py$clic?
    langage=Python&location=user en Python
    Message: <class 'TypeError'>:clic() missing 1required positional argument; 'event'
    file"/opt/libreoffice6.2/program/pythonscript.py",line 1047, in getScript
    mod = self.provCtx.getModuleByUrl(fileuri)
    file"/opt/libreoffice6.2/program/pythonscript.py",line 484, in getModuleByUrl
    exec(code,entry.module_dict_)
    File"/home/elfouste/.config/libreoffice/4/user/Scripts/python/Calcul.py", line 14, in <module>
    clic()


    Un grand merci pour l' aide que vous pourrez m' apporter.

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 316
    Points : 24 202
    Points
    24 202
    Par défaut
    Salut,

    Citation Envoyé par El Bosc Voir le message
    Bon, je sais que ce problème n' est vraiment pas transcendant, mais j' en suis au tout début de python.
    Si vous définissez une fonction "clic" avec un paramètre "event", il faut lui passer le paramètre lorsque vous l'appelez, sinon çà plante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> def clic(event):
    ...     pass
    ...
    >>> clic()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: clic() missing 1 required positional argument: 'event'
    >>>
    et si vous n'avez pas encore assimilé ce genre de choses, il va falloir être patient et ouvrir un tuto. pour apprendre les bases.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    mars 2010
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2010
    Messages : 153
    Points : 91
    Points
    91
    Par défaut parametre event
    Bonsoir,

    J' ai retourné la doc sur les événements python sans grand succès. La confusion vient peut-être du fait que je ne cherche pas à récupérer le clic d' une souris ou d'une touche du clavier mais le fait d' avoir activé le bouton d' un formulaire libre office.
    En conclusion, pour l' instant, point mort.

    Cordialement

Discussions similaires

  1. [XL-2003] Pilotage LibreOffice Base : fermeture Base
    Par gilberte333 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2013, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo