IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
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

Python Discussion :

Fonction : d�finition et utilisation


Sujet :

Python

  1. #1
    Membre confirm�
    Inscrit en
    Octobre 2009
    Messages
    127
    D�tails du profil
    Informations personnelles :
    �ge : 34

    Informations forums :
    Inscription : Octobre 2009
    Messages : 127
    Par d�faut Fonction : d�finition et utilisation
    Bonjour � toutes/tous,

    Apr�s plusieurs ann�es sans une ligne de code.... et quelques bases solides en C#, java et VBA je me lance dans un projet python pour faire une sorte de "photobooth".

    Premiers pas en python, je d�couvre les joies du python. Il se trouve que j'ai tent� de d�finir une fonction qui prends les photos et me fait un montage.
    Je veux appeler cette fonction sur action d'un bouton... mais au moment ou je d�finit le bouton j'ai l'impression qu'il ne connait pas encore la fonction.
    Sauf que si je d�finit le fonction avant.... alors elle s'execute direct (j'ai mis le chmod +x dessus puis je l'execute en faisant "python ....")

    Voici mon code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    #!/usr/bin/python
     
    import RPi.GPIO as GPIO, time, os, subprocess
    from Tkinter import *
     
     
    #On mets une fenetre pour tester
    fenetre = Tk() #on instancie l'objet a partir de la bibliotheque Tk
    label = LabelFrame(fenetre, text="Pouet Pouet") #on definit le texte qu'on voudra dedans
    label.pack() #on l'active
    Button(fenetre, text="Video maggle").pack(side=RIGHT, padx=5, pady=5)
    Button(fenetre, text="Photos maggle", command=snap()).pack(side=LEFT, padx=5, pady=5)
    bouton = Button(fenetre, text="quitter cette super fenetre", command=fenetre.quit) #definit un bouton quit dans la fenetre
    bouton.pack(side=BOTTOM) #on l'active
    fenetre.mainloop()
     
     
    def snap():
            snap = 0
            while snap < 4:
                    print("pose!")
                    time.sleep(1.5)
                    print("SNAP")
                    gpout = subprocess.check_output("gphoto2 --capture-image-and-download --filename /home/pi/photobooth_images/photobooth%H%M%S.jpg", stderr=subprocess.STDOUT, shell=True)
                    print(gpout)
                    if "ERROR" not in gpout:
                            snap += 1
                    time.sleep(0.5)
                    print("please wait while your photos print...")
                    # build image and send to printer
                    subprocess.call("sudo /home/pi/scripts/photobooth/assemble_and_print", shell=True)
                    # Wait to ensure that print queue doesn't pile up
                    #time.sleep(110)
                    print("ready for next round")
            return;
    Merci par avance de votre aide

  2. #2
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Salut,

    1: Enl�ve les parenth�ses ici command=snap() sinon la commande est le retour de cette fonction. None dans ce cas.

    2:
    Ne pas r�utiliser le m�me nom, �a joue des tours.

    3: Je suppose que tu voulais ajouter l'heure ici : photobooth%H%M%S.jpg
    4: Ici c'est juste une question, pourquoi le programme assemble_and_print qui se trouve dans ton home doit �tre lanc� avec les droits admin ?

  3. #3
    Membre confirm�
    Inscrit en
    Octobre 2009
    Messages
    127
    D�tails du profil
    Informations personnelles :
    �ge : 34

    Informations forums :
    Inscription : Octobre 2009
    Messages : 127
    Par d�faut
    Hello VinSs

    Top merci de ta r�ponse, en effet en corrigeant en enlevant les parenth�ses et en changeant le nom de ma fonction �a roule !

    Parfait

    Pour le "sudo" a vrai dire je vais fouiner, j'ai chercher des scripts � droite � gauche que je vais bosser ensuite pour la gestion des erreurs etc...

    Un Grand merci pour ton aide !!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. fonction SOMME.SI utilis�e avec fonction ET ?
    Par clarisse dans le forum Excel
    R�ponses: 16
    Dernier message: 30/07/2008, 12h17
  2. Fonction JPanel.repaint() utilise 100% du processeur
    Par deadstar62 dans le forum AWT/Swing
    R�ponses: 10
    Dernier message: 08/08/2007, 13h23
  3. appeler une fonction d�finit par l'utilisateur
    Par paumi dans le forum C++Builder
    R�ponses: 5
    Dernier message: 22/05/2007, 00h00
  4. D�finition et utilisation d'un fichier AFS ?
    Par habasque dans le forum Langages de programmation
    R�ponses: 1
    Dernier message: 27/04/2007, 21h21
  5. R�ponses: 1
    Dernier message: 09/05/2006, 20h01

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