Bonjour, je suis assez pressé, je dois rendre mon projet Vendredi mais j'ai un problème au niveau des fonctions.. Mon programme d'ISN est de réalisé un menu sous Tkinter en gros. Je suis censé simulé l'arrivé d'une trame et afficher une image en fonction de celà.
Mon programme seul marche trés bien :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
from tkinter import *
from tkinter.messagebox import * # boîte de dialogue
 
#________________________ FONCTION ____________________________
 
 
def Verification():
    print(Motdepasse.get()) #Mouchard
    TRAME=Motdepasse.get() #Definition de variable pour utiliser [0] liste.
    if TRAME[0] == '@': #Si le caractere 0 ...
        showinfo('Résultat','STX vérifié\n')
    else:
        showinfo("Resultat","STX invalide, veuillez recommencer\n")
        Motdepasse.set('') #Nettoye les caracteres precedemment tapés.
 
    if TRAME[8]=="+": #Si le caractere 8...
        showinfo("Resultat","EOT vérifié")
    else:
        showinfo("Resultat","EOT invalide, veuillez recommencer\n")
        Motdepasse.set('') #Nettoye les caracteres precedemment tapés.
    if TRAME[6]=="7": #Si le caractere 6...
        showinfo("Resultat","CSC MSB vérifié\n")
        if TRAME[7]=="0":  #Si le caractere 7..
            showinfo("Resultat","CSC LSB vérifié\n") 
        else:
            showinfo("Resultat","Pertubations dues à d'autres emissions\n")
            Motdepasse.set('') #Nettoye les caracteres precedemment tapés.
 
 
    if TRAME =="@0000070+":  #@0000070+ signifie que la boite aux lettres est vide.
        fenetretrame.destroy() #Fermeture de la fenetre de saisie.
        import BOITEVIDE #Importation du programme BOITEVIDE.py
 
 
 
 
    if TRAME =="@1100070+": #@1100070+ signifie que la boite aux lettres a un colis et une lettre au moins.
        fenetretrame.destroy() #fermeture de la fenetre de saisie.
        import LETTRECOLIS #Importation du programme LETTRECOLIS.py
 
 
 
    if TRAME =="@1000070+": #@1000070+ signifie que la boite aux lettres à une lettre
        fenetretrame.destroy() #fermeture de la fenetre de saisie.
        import LETTRE #Importation du programme LETTRE.py
 
 
 
    if TRAME =="@0100070+": #@0100070+ signifie que la boite aux lettres à un colis.
        fenetretrame.destroy() #fermeture de la fenetre de saisie.
        import COLIS  #Importation du programme COLIS.py
 
 
#_________________________________ FENETRE PRINCIPALE __________________      
 
# Création de la fenêtre principale 
fenetretrame = Tk()
fenetretrame.title('Trame reçue') #Titre de la fenetre
 
 
# Création d'un widget Label (texte 'Mot de passe')
Label1 = Label(fenetretrame, text = 'Trame reçue ')
Label1.pack(side = LEFT, padx = 5, pady = 5)
 
# Création d'un widget Entry (champ de saisie)
Motdepasse= StringVar()
Champ = Entry(fenetretrame, textvariable= Motdepasse, bg ='bisque', fg='maroon')
Champ.focus_set()
Champ.pack(side = LEFT, padx = 5, pady = 5)
 
# Création d'un widget Button (bouton Valider)
Bouton = Button(fenetretrame, text ='Valider', command = Verification)  #L'appuie sur le bouton active la fonction "verification"
Bouton.pack(side = LEFT, padx = 5, pady = 5)
 
fenetretrame.mainloop()

néanmoins des que je fais appel de ce programme depuis un autre programme, tout ce que je peux ecrire dans mon champ de saisie n'est pas reconnu, comme si j'ecrivais rien. Même à l'aide d'un mouchard ( PRINT ) rien ne s'affiche.
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
 
 
def TRAME():
    import TRAMEMDP
 
 
 
 
 
 
 
def RAPPEL():
 
# Création de la fenêtre principale
    fenetrerappel = Tk()
    fenetrerappel.title('Rappel')
    fenetrerappel['bg']='bisque' # couleur de fond
    Button(fenetrerappel,text="Consulter l'etat de la Boite aux lettres",command=TRAME).pack(padx=10,pady=10)
 
 
# création d'un widget Frame dans la fenêtre principale
    Rappel1 = Frame(fenetrerappel,borderwidth=2,relief=GROOVE)
    Rappel1.pack(side=LEFT,padx=10,pady=10)
 
    # création d'un second widget Frame dans la fenêtre principale
    Rappel2 = Frame(fenetrerappel,borderwidth=2,relief=GROOVE)
    Rappel2.pack(side=LEFT,padx=10,pady=10)
 
# création d'un widget Frame dans un autre widget Frame
# le parent du widget Frame1 est le widget fenetrerappel (fenêtre principale)
    Rappel3 = Frame(Rappel1,bg="white",borderwidth=2,relief=GROOVE)
    Rappel3.pack(side=LEFT,padx=10,pady=10)
 
# création d'un widget Label et d'un widget Button dans un widget Frame
    Label(Rappel1,text="Absence de courrier , Mardi 12h").pack(padx=10,pady=10)
    Button(Rappel1,text="Effacer",fg='navy',command=Rappel1.destroy).pack(padx=10,pady=10)
 
    Label(Rappel2,text="Absence de courrier, Mardi 18h").pack(padx=10,pady=10)
    Button(Rappel2,text="Effacer",fg='navy',command=Rappel2.destroy).pack(padx=10,pady=10)
 
    Label(Rappel3,text="Présence de courrier Lundi 18h").pack(padx=10,pady=10)
    Button(Rappel3,text="Effacer",fg='navy',command=Rappel3.destroy).pack(padx=10,pady=10)
 
 
 
    fenetrerappel.mainloop()



LE code d'erreur etant le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1487, in __call__
    return self.func(*args)
  File "E:\ISN FINAL\TRAMEMDP.py", line 11, in Verification
    if TRAME[0] == '@': #Si le caractere 0 ...
IndexError: string index out of range

J'ai vraiment besoin de votre aide
Merci