Code qui ne s'exécute qu'à la fermeture de la fenêtre root
Bonjour,
Je suis d'un niveau débutant en programmation avec python 2.7.
J'ai un code pour une GUI qui fait appel à un autre script python pour envoie de MMS, comme suit :
Code:
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
|
#!c:/Python27/python.exe -u
import send_mms
import sys
from Tkinter import *
import Tkinter as Tk
root = Tk.Tk()
root.title('MMS MM4 Inbound Test Tool')
def send():
send_mms.main(var.get(), v1.get(), v2.get())
var = IntVar()
frame1 = Frame(root)
frame1.pack()
frame2 = Frame(root)
frame2.pack()
frame3 = Frame(root)
frame3.pack()
frame4 = Frame(root)
frame4.pack()
R1 = Radiobutton(frame1, text="Send MMS to Prod MSISDN", variable=var, value=1)
R1.pack( anchor = W )
R2 = Radiobutton(frame1, text="Send MMS to Labo MSISDN", variable=var, value=2)
R2.pack( anchor = W )
L1 = Label(frame2, text="Enter Receiving MSISDN here :")
L1.pack( side = LEFT)
v1 = StringVar()
E1 = Entry(frame2, bd =5, textvariable=v1)
E1.pack(side = RIGHT)
L2 = Label(frame3, text="Enter number of MMS to send:")
L2.pack( side = LEFT)
v2 = StringVar()
E2 = Entry(frame3, bd =5, textvariable=v2)
E2.pack(side = RIGHT)
S = Button(frame4, text="Send", command=send)
S.pack( anchor = W )
root.mainloop() |
Quand on appuie sur le bouton send ça fait appel au script send_mms.py avec les bons arguments, celui ci doit envoyer les MMS avec le bon système choisi, le numéro de destination indiqué ainsi que le nombre de MMS voulus.
Le script send_mms.py ressemble un peu à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#!c:/Python27/python.exe -u
import smtplib
import time
import os, sys
from email.utils import formatdate
from Tkinter import *
def main(arg1, arg2, arg3):
corps du code.....
for x in range (1, num):
smtpObj.sendmail(mailfrom, rcptto, message)
status = "%d Successfully submitted MMS" % (x);
frmMain = Tk()
label = Label(frmMain, text = status)
label.pack()
frmMain.mainloop()
if __name__=='__main__':
sys.exit(main(sys.argv[1], sys.argv[2], sys.argv[3])) |
Où après l'envoi, une fenêtre pop-up pour indiquer l'envoi avec succès.
Mais voilà sur la GUI quand en choisissant le système avec le bouton radio, entrant les champs num de tél + nombre de MMS et enfin cliquant sur le bouton send pour déclencher l'envoi, la fenêtre de succès pop-up mais rien ne se passe jusqu'à ce que je ferme cette fenêtre + la fenêtre de saisie aussi (avec le grand X à droite) ! et là je reçoit mes MMS...
J'ai comme l'impression qu'un des deux programmes (ou les deux) entre dans une boucle qui n'est brisé que par la fermeture des fenêtres.
J'ai essayé de placer des root.quit, root.destroy un peu partout mais ça donnait rien...
Est ce que quelqu'un peut jeter un coup d’œil sur mon code et m'aider à trouver où se situe le bobo ? :)
Merci d'avance,