Partage
  • Partager sur Facebook
  • Partager sur Twitter

insertion d'une image

Sujet résolu
    30 mai 2011 à 11:44:52

    Bonjour,

    je suis débutante en Python, et je veux faire une interface graphique qui comprend deux boutons('quitter' et 'démarrer') et un label ('butée sphérique') et entre ces 2 boutons et le label je veux insérer une photo de la butée sphérique( extension.jpg).

    Cette interface graphique représente la page de démarrage du mon programme.

    Pour les boutons et le label j'arrive à les faire sous python mais à propos l'insertion du photo j'ai pas une idée claire comment le faire.

    merci d'avance
    Cordialement
    • Partager sur Facebook
    • Partager sur Twitter
      30 mai 2011 à 11:47:10

      Quelle bibliothèque de GUI utilises-tu ?
      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
        30 mai 2011 à 12:08:10

        j'ai utilisé Tkinter.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          30 mai 2011 à 16:22:34

          le code est le suivant.
          j'ai essayé d'insérer une photo mais elle ne s'affiche pas lors de l'éxecution du script
          <code type="python"></code>
          # Nom du programme : Sphérical bearings
          # compatibilité :
          import os
          # Interface graphique :
          from tkinter import*

          #-----------------------------définition des fonctions-------------------------

          # Fontion d'introduction du matériau :
          def matériau():
          fen1=Toplevel(fen)
          fen1.title("Matériaux")
          Label(fen1, text="#--------Matériaux--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
          Label(fen1, text="introduisez le matériaux", fg="red").grid(row=1, column=0, pady=5, padx=5)
          entr1=Entry(fen1)
          entr1.grid(row=1, column=3, pady=5, padx=5)
          entr1.focus_set()
          Label(fen1, text="le module d'Young", fg="red").grid(row=2, column=0, pady=5, padx=5)
          entr2=Entry(fen1)
          entr2.grid(row=2, column=3, pady=5, padx=5)
          entr2.focus_set()
          Label(fen1, text="le coefficient du poisson", fg="red").grid(row=3, column=0, pady=5, padx=5)
          entr3=Entry(fen1)
          entr3.grid(row=3, column=3, pady=5, padx=5)
          entr3.focus_set()
          Label(fen1, text="Rm", fg="red").grid(row=4, column=0, pady=5, padx=5)
          entr4=Entry(fen1)
          entr4.grid(row=4, column=3, pady=5, padx=5)
          entr4.focus_set()
          Label(fen1, text="Re", fg="red").grid(row=5, column=0, pady=5, padx=5)
          entr5=Entry(fen1)
          entr5.grid(row=5, column=3, pady=5, padx=5)
          entr5.focus_set()
          Button(fen1, text='Précédant', command=fen.deiconify).grid(row=6, column=0, pady=5, padx=5)
          Button(fen1, text='Suivant').grid(row=6, column=3, pady=5, padx=5)

          #-------------------------------Corps du programme------------------------------

          fen=Tk()
          fen.title("Spherical bearing")
          Label(fen, text="#--------Spherical bearing--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
          can1=Canvas(fen, width=160, height=160, bg='white')
          photo= PhotoImage(file='cartoon_037.gif')
          item=can1.create_image(80, 80, image=photo)
          Button(fen, text="Quit", fg="purple",command=fen.destroy).grid(row=2, column=0, pady=5, padx=5)
          Button(fen, text="Start", fg="purple",command=matériau).grid(row=2, column=2, pady=5, padx=5)
          fen.mainloop()
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            30 mai 2011 à 18:36:52

            <code type="python">
                # C'est entre ces deux balises que doit être le code indenté !
            </code>
            
            • Partager sur Facebook
            • Partager sur Twitter
              31 mai 2011 à 11:40:13

              bonjour;

              merci pour l'information :)

              le code est le suivant:

              # Nom du programme : Sphérical bearings
              # compatibilité :
              import os
              # Interface graphique :
              from tkinter import*
              try:
                  import Tkinter as Tk
              except:
                  import tkinter as Tk
              
              #-----------------------------définition des fonctions-------------------------
              
              # Fontion d'introduction du matériau :   
              def matériau():
                  fen1=Toplevel(fen)
                  fen1.title("Matériaux")
                  Label(fen1, text="#--------Matériaux--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
                  Label(fen1, text="introduisez le matériaux", fg="red").grid(row=1, column=0, pady=5, padx=5)
                  entr1=Entry(fen1)
                  entr1.grid(row=1, column=3, pady=5, padx=5)
                  entr1.focus_set()
                  Label(fen1, text="le module d'Young", fg="red").grid(row=2, column=0, pady=5, padx=5)
                  entr2=Entry(fen1)
                  entr2.grid(row=2, column=3, pady=5, padx=5)
                  entr2.focus_set()
                  Label(fen1, text="le coefficient du poisson", fg="red").grid(row=3, column=0, pady=5, padx=5)
                  entr3=Entry(fen1)
                  entr3.grid(row=3, column=3, pady=5, padx=5)
                  entr3.focus_set()
                  Label(fen1, text="Rm", fg="red").grid(row=4, column=0, pady=5, padx=5)
                  entr4=Entry(fen1)
                  entr4.grid(row=4, column=3, pady=5, padx=5)
                  entr4.focus_set()
                  Label(fen1, text="Re", fg="red").grid(row=5, column=0, pady=5, padx=5)
                  entr5=Entry(fen1)
                  entr5.grid(row=5, column=3, pady=5, padx=5)
                  entr5.focus_set()
                  Button(fen1, text='Précédant', command=fen.deiconify).grid(row=6, column=0, pady=5, padx=5)
                  Button(fen1, text='Suivant').grid(row=6, column=3, pady=5, padx=5)
              
              #-------------------------------Corps du programme------------------------------
                  
              fen=Tk.Tk()
              fen.title("Spherical bearing")
              Label(fen, text="#--------Spherical bearing--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
              photo= Tk.PhotoImage(file="cartoon_037.gif")
              l = Tk.Label(fen, image=photo)
              l.pack()
              Button(fen, text="Quit", fg="purple",command=fen.destroy).grid(row=2, column=0, pady=5, padx=5)
              Button(fen, text="Start", fg="purple",command=matériau).grid(row=2, column=2, pady=5, padx=5)
              fen.mainloop()
              
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                31 mai 2011 à 12:01:05

                Un traceback?

                Car je vois des choses qui me choquent, accent sur une fonction, Label sans affectation, from tkinter import* avant le try, ...

                Enfin bref l'interpréteur doit t'insulter dans tous les sens je pense. Met tes erreurs qu'on les corrige ensemble

                Edit : Une version corrigée un minimum pour que tu vois apparaître ton image

                #!/usr/bin/python
                # -*- coding:utf8 -*-
                
                # Nom du programme : Sphérical bearings
                # compatibilité :
                import os
                # Interface graphique :
                try:
                    import Tkinter as Tk
                except:
                    import tkinter as Tk
                
                #-----------------------------définition des fonctions-------------------------
                
                # Fontion d'introduction du matériau :   
                def materiau():
                    fen1=Toplevel(fen)
                    fen1.title("Matériaux")
                    Label(fen1, text="#--------Matériaux--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
                    Label(fen1, text="introduisez le matériaux", fg="red").grid(row=1, column=0, pady=5, padx=5)
                    entr1=Entry(fen1)
                    entr1.grid(row=1, column=3, pady=5, padx=5)
                    entr1.focus_set()
                    Label(fen1, text="le module d'Young", fg="red").grid(row=2, column=0, pady=5, padx=5)
                    entr2=Entry(fen1)
                    entr2.grid(row=2, column=3, pady=5, padx=5)
                    entr2.focus_set()
                    Label(fen1, text="le coefficient du poisson", fg="red").grid(row=3, column=0, pady=5, padx=5)
                    entr3=Entry(fen1)
                    entr3.grid(row=3, column=3, pady=5, padx=5)
                    entr3.focus_set()
                    Label(fen1, text="Rm", fg="red").grid(row=4, column=0, pady=5, padx=5)
                    entr4=Entry(fen1)
                    entr4.grid(row=4, column=3, pady=5, padx=5)
                    entr4.focus_set()
                    Label(fen1, text="Re", fg="red").grid(row=5, column=0, pady=5, padx=5)
                    entr5=Entry(fen1)
                    entr5.grid(row=5, column=3, pady=5, padx=5)
                    entr5.focus_set()
                    Button(fen1, text='Précédant', command=fen.deiconify).grid(row=6, column=0, pady=5, padx=5)
                    Button(fen1, text='Suivant').grid(row=6, column=3, pady=5, padx=5)
                
                #-------------------------------Corps du programme------------------------------
                    
                fen=Tk.Tk()
                fen.title("Spherical bearing")
                lab = Tk.Label(fen, text="#--------Spherical bearing--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
                photo= Tk.PhotoImage(file="cartoon_037.gif")
                l = Tk.Label(fen, image=photo)
                l.grid(row=1, column=1)
                b = Tk.Button(fen, text="Quit", fg="purple",command=fen.destroy).grid(row=2, column=0, pady=5, padx=5)
                c = Tk.Button(fen, text="Start", fg="purple",command=materiau).grid(row=2, column=2, pady=5, padx=5)
                fen.mainloop()
                
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  31 mai 2011 à 13:07:31

                  Citation

                  [...] accent sur une fonction, [...]



                  Ça c'est la puissance de Python 3... Impressionnant n'est-ce pas !? :D

                  Mais en réalité, il vaut mieux éviter car ça peut produire des trucs assez difficile à comprendre. Par exemple, en mode interactif sous Windows, tu ne pourra pas appeler les fonctions qui contiennent des accents à cause de l'encodage de la console qui diffère de l'UTF-8.

                  Alors voilà, ça marche avec des accents, mais il faut bien avoir conscience que tu auras des problèmes pour utiliser tes fonctions en-dehors des fichiers (quand l'encodage diffère des fichiers).


                  Pour ce qui est des Label sans référencement, ce n'est pas génant si on ne veut pas les toucher après les avoir définis et placés.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 mai 2011 à 14:09:26

                    ok merci beaucoups pour l'aide.
                    bon j'ai reessayé le script et ça marche; j'ai effectué aussi des corrections pour la fonction matériaux
                    le code final est le suivant:

                    # Nom du programme : Sphérical bearings
                    # compatibilité :
                    import os
                    # Interface graphique :
                    try:
                        import Tkinter as Tk
                    except:
                        import tkinter as Tk
                    
                    #-----------------------------définition des fonctions-------------------------
                    
                    # Fontion d'introduction du matériau :   
                    def matériau():
                        fen1=Tk.Toplevel(fen)
                        fen1.title("Matériaux")
                        lab1 = Tk.Label(fen1, text="#--------Matériaux--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
                        lab2 = Tk.Label(fen1, text="introduisez le matériaux", fg="red").grid(row=1, column=0, pady=5, padx=5)
                        entr1= Tk.Entry(fen1)
                        entr1.grid(row=1, column=3, pady=5, padx=5)
                        entr1.focus_set()
                        lab3 = Tk.Label(fen1, text="le module d'Young", fg="red").grid(row=2, column=0, pady=5, padx=5)
                        entr2= Tk.Entry(fen1)
                        entr2.grid(row=2, column=3, pady=5, padx=5)
                        entr2.focus_set()
                        lab4 = Tk.Label(fen1, text="le coefficient du poisson", fg="red").grid(row=3, column=0, pady=5, padx=5)
                        entr3= Tk.Entry(fen1)
                        entr3.grid(row=3, column=3, pady=5, padx=5)
                        entr3.focus_set()
                        lab5 = Tk.Label(fen1, text="Rm", fg="red").grid(row=4, column=0, pady=5, padx=5)
                        entr4= Tk.Entry(fen1)
                        entr4.grid(row=4, column=3, pady=5, padx=5)
                        entr4.focus_set()
                        lab6 = Tk.Label(fen1, text="Re", fg="red").grid(row=5, column=0, pady=5, padx=5)
                        entr5= Tk.Entry(fen1)
                        entr5.grid(row=5, column=3, pady=5, padx=5)
                        entr5.focus_set()
                        bout1= Tk.Button(fen1, text='Précédant', command=fen.deiconify).grid(row=6, column=0, pady=5, padx=5)
                        bou2 = Tk.Button(fen1, text='Suivant').grid(row=6, column=3, pady=5, padx=5)
                    
                    #-------------------------------Corps du programme------------------------------
                        
                    fen=Tk.Tk()
                    fen.title("Spherical bearing")
                    lab = Tk.Label(fen, text="#--------Spherical bearing--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
                    photo= Tk.PhotoImage(file="cartoon_037.gif")
                    l = Tk.Label(fen, image=photo)
                    l.grid(row=1, column=1)
                    b = Tk.Button(fen, text="Quit", fg="purple",command=fen.destroy).grid(row=2, column=0, pady=5, padx=5)
                    c = Tk.Button(fen, text="Start", fg="purple",command=matériau).grid(row=2, column=2, pady=5, padx=5)
                    fen.mainloop()
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      31 mai 2011 à 14:12:25

                      Citation

                      Ça c'est la puissance de Python 3... Impressionnant n'est-ce pas !?



                      Franchement ils auraient pu s'en passer, c'est le genre de chose n'ayant vraiment aucun intérêt.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        31 mai 2011 à 15:21:32

                        Citation : fred1599

                        Franchement ils auraient pu s'en passer, c'est le genre de chose n'ayant vraiment aucun intérêt.



                        Rohh, tu dis ça parce que tu es fâché. Regarde comment c'est trop pratique :

                        def กลับกัน(โซ่):
                            return โซ่[::-1]
                        


                        Et bon courage pour utiliser cette fonction dans la console de windows... :-°


                        [edit]
                        foofaa33, aucune de tes variables 'lab' ne fait référence à un objet Label parce que tu leur affect le résultat de la méthode Label.grid()

                        # Erreur :
                        lab = Label(...).grid(...)
                        # Correct :
                        lab = Label(...)
                        lab.grid(...)
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          31 mai 2011 à 15:35:38

                          C'est super-pratique !
                          Ça permet de donner une dimension pictographique aux programmes.

                          # -*- coding: utf-8 -*-
                          
                          from sys import stderr, exit
                          
                          def ಠ_ಠ(msg=""):
                              stderr.write(msg + "\n")
                              stderr.flush()
                              exit(1)
                          


                          Du coup dans un programme :

                          # ...
                          if bad_input(usrinput):
                             ಠ_ಠ('I C WUT U DID THERE!!')
                          


                          … oui, j'avais 5 minutes à perdre…
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Zeste de Savoir, le site qui en a dans le citron !
                          Anonyme
                            31 mai 2011 à 16:07:23

                            Citation

                            Rohh, tu dis ça parce que tu es fâché. Regarde comment c'est trop pratique :



                            Non, non, c'est vrai que c'est une question de goût, mais je ne vois rien de pratique, les accents esthétiquement parlant dans les fonctions ça ne passe pas, c'est moche!

                            Citation

                            Ça permet de donner une dimension pictographique aux programmes.



                            Y'a pas un lama qui aurait consommé de l'herbe de provence dans le coin? :p

                            • Partager sur Facebook
                            • Partager sur Twitter

                            insertion d'une image

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown