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

Tkinter Python Discussion :

Un problème dans les interfaces graphique de python


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut Un problème dans les interfaces graphique de python
    Bonjour , s'il vous plait j'ai un probleme avec python :
    jé programmé 2 scripts 1 contient une boutton et une image, ce boutton fait l'appel à un autre script qui lui aussi contient une image, le probléme est ds le 2éme script il n'affiche pas l'image et il me donne une erreur voilà les deux script:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    ###Premier script: Projet.py
     
    from Tkinter import *;
    from moha import *;
     
    fen1=Tk();
    fen1.title("Le menu principal")
    Button(fen1,text='Le PGCD',command=interface_pgcd).grid(row =2, column =0, columnspan =2, padx =10, pady =5)
    can = Canvas(fen1, width =350, height =200, bg ='white')
    phot = PhotoImage(file ='bon.gif')
    item = can.create_image(175, 100, image =phot)
    can.grid(row =0, column =3, rowspan =4, padx =10, pady =5)
    fen1.mainloop();
    fen1.destroy();
     
     
     
    #Le deuxième script: moha.py
     
    from Tkinter import *
    from Rho import * #contient la fonction pgcd
     
    def evaluer_pgcd(event):
        #global entr1,entr2,chaine
        a=int(entr1.get())
        a= pgcd(int(entr2.get()),a)
        chaine.configure(text = "Resultat            =            "+str(a))
    def interface_pgcd():
        global entr1,entr2,chaine,fen2;
        fen2 = Tk()
        #fen2.protocol ( "WM_DELETE_WINDW", fen2.quit) 
        fen2.title("Le pgcd")
        txt1 = Label(fen2, text = 'Premier variable :')
        txt2 = Label(fen2, text = 'Second variable :')
        entr1 = Entry(fen2)
        entr2 = Entry(fen2)
        txt1.grid(row =0, sticky =E)
        txt2.grid(row =1, sticky =E)
        entr1.grid(row =0, column =1)
        entr2.grid(row =1, column =1)
        entr2.bind("<Return>", evaluer_pgcd)
        chaine = Label(fen2)
        chaine.grid(row =3, column=1, sticky =E)
        can1 = Canvas(fen2, width =380, height =140, bg ='white')
        photo = PhotoImage(file ='pgcd.gif')
        item = can1.create_image(190, 70, image =photo)
        can1.grid(row =2, column =0, columnspan =2, padx =10, pady =5)
     
        fen2.mainloop()
    s'il vous aidez moi

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 066
    Par défaut
    et l'erreur c'est ...?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    il me donne erreur si je veux afficher l'image dans les deux qui sont représentés par ces deux script. Voilà l'erreur qu'il s'affiche


    TclError: image "pyimage2" doesn't exist

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 066
    Par défaut
    l'erreur tiend sur une seule ligne ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    voilà tous ce qu'il me donne comme erreur



    Exception in Tkinter callback
    Traceback (most recent call last):
    File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
    return self.func(*args)
    File "/home/mohamed/moha.py", line 30, in interface_pgcd
    item = can1.create_image(190, 70, image =photo)
    File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 2159, in create_image
    return self._create('image', args, kw)
    File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 2150, in _create
    *(args + self._options(cnf, kw))))
    TclError: image "pyimage2" doesn't exist

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Utilise Toplevel, ça évite de se retrouver avec 2 mainloop. c'est pas terrible, la preuve.
    Le dic empêche l'image d'être détruite à la fin de la fonction:

    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
     
    from Tkinter import *
     
     
    def evaluer_pgcd(event):
        #global entr1,entr2,chaine
        a=int(entr1.get())
        a= pgcd(int(entr2.get()),a)
        chaine.configure(text = "Resultat            =            "+str(a))
     
    dic = {}
    def interface_pgcd():
     
        global entr1,entr2,chaine,fen2;
        fen2 = Toplevel()
     
        #fen2.protocol ( "WM_DELETE_WINDW", fen2.quit) 
        fen2.title("Le pgcd")
        txt1 = Label(fen2, text = 'Premier variable :')
        txt2 = Label(fen2, text = 'Second variable :')
        entr1 = Entry(fen2)
        entr2 = Entry(fen2)
        txt1.grid(row =0, sticky =E)
        txt2.grid(row =1, sticky =E)
        entr1.grid(row =0, column =1)
        entr2.grid(row =1, column =1)
        entr2.bind("<Return>", evaluer_pgcd)
        chaine = Label(fen2)
        chaine.grid(row =3, column=1, sticky =E)
        can1 = Canvas(fen2, width =380, height =140, bg ='white')
        photo = PhotoImage(file ='pgcd.gif')
        dic["photo"] = photo
     
        item = can1.create_image(190, 70, image =photo)
        can1.grid(row =2, column =0, columnspan =2, padx =10, pady =5)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CheckButton, ComboBox dans une interface graphique Python
    Par noramokh dans le forum Général Python
    Réponses: 9
    Dernier message: 14/04/2014, 12h58
  2. Problème d'insertion d'images dans mon interface graphique
    Par nini_python dans le forum Tkinter
    Réponses: 8
    Dernier message: 03/08/2012, 19h59
  3. Relier les champs de deux tables dans une interface graphique
    Par laurentlorient dans le forum Débuter
    Réponses: 1
    Dernier message: 26/04/2009, 22h34
  4. les actions dans l'interface graphique
    Par bouhmid86 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 08/03/2009, 19h23
  5. les matrices dans un interface graphique
    Par SavoitTout dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 29/04/2008, 21h38

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