cliquer sur un bouton ecrit une date dans un ENTRY

cliquer sur un bouton ecrit une date dans un ENTRY - Python - Programmation

Marsh Posté le 15-05-2016 à 12:23:06    

Bonjour
 
j'ai crée une fenetre avec 3 boutons devant entrer une date automatiquement dans un  
 
ENTRY, mais je n'ai pas encore trouvé la partie de code qui le realise, auriez vous  
 
une idée svp .

Code :
  1. # #############################################
  2. #    modules                                  #
  3. # #############################################
  4. from tkinter import *
  5. import csv
  6. # #############################################
  7. #    methodes                                 #
  8. # #############################################
  9. def quit():
  10.     fen.destroy()
  11.     # #
  12. def recherche(event):
  13.     with open('IdClients.csv') as csvfile:
  14.         readCSV = csv.reader(csvfile, delimiter=',')
  15.         liste_date = []
  16.         liste_client = []
  17.         liste_id = []
  18.         for row in readCSV:
  19.             date = row[2]
  20.             client = row[1]
  21.             id = row[0]
  22.             if row[2] == var_date.get():
  23.                 if row[1]== var_client.get():
  24.                     var_id.set(row[0])
  25.                     print(row[0])
  26. # efface que client et id et conserve la date
  27. def nettoyage():
  28.     var_client.set("" )
  29.     var_id.set("" )
  30. # prog -------------------------------------------------------------------------
  31. fen = Tk()
  32. frame=Frame(fen)
  33. frame.pack(padx=10, pady=10)
  34. frame2=Frame(frame)
  35. frame2.grid(row=0, column=2)
  36. label_date=Label(frame,text="date : \n02/05/2016",font= ("cambia 10 " ),width=12)
  37. label_date.grid(row=0, column=0, padx=10, pady=10)
  38. label_client=Label(frame,text="nom client\n dupont" )
  39. label_client.grid(row=1, column=0, padx=10, pady=10)
  40. var_date=StringVar()
  41. entree_date=Entry(frame,textvariable=var_date,font= ("cambia 13 " ),width=12)
  42. entree_date.grid(row=0, column=1)
  43. var_client=StringVar()
  44. entree_client=Entry(frame,textvariable=var_client,validate="key",font= ("cambia 13 " ),width=12)
  45. entree_client.bind("<Return>", recherche)
  46. entree_client.grid(row=1, column=1)
  47. # affichage resultat
  48. var_id=StringVar()
  49. label_id = Label(frame, textvariable=var_id,font= ("cambia 14 " ),width=12)
  50. label_id.grid(row=2, column=1)
  51. bouton_aujourdhui=Button(frame2, text="aujourd hui", )
  52. bouton_aujourdhui.pack()
  53. bouton_demain=Button(frame2, text="demain", )
  54. bouton_demain.pack()
  55. bouton_apdemain=Button(frame2, text="apr demain", )
  56. bouton_apdemain.pack()
  57. bouton_clear=Button(frame,text="Clear",font= ("cambia 14 " ),width=9, bg="yellow",command=nettoyage)
  58. bouton_clear.grid(row=1,column=2, padx=10, pady=10)
  59. quitter = Button(fen, text="QUIT", font= ("cambia 14 " ),width=9, command=quit)
  60. quitter.pack(side=RIGHT,padx=10, pady=10)
  61. # ------------------------------------------------------------------------------
  62. fen.mainloop()
  63. exit(0)

Reply

Marsh Posté le 15-05-2016 à 12:23:06   

Reply

Marsh Posté le 15-05-2016 à 16:31:06    

Il suffit de lier une commande à  ton bouton, comme dans ton bouton quitter.
Et d'utiliser le module datetime.
 
Donc primo, ajouter k'import de datetime au début de ton fichier.
 

Code :
  1. from datetime import datetime


 
Ensuite, une petite fonction qui sera reliée à ton bouton aujourdhui, qui mettra à jour l'objet Stringvar
 

Code :
  1. def aujourdhui() :
  2.     var_date.set(datetime.strftime(datetime.now(), '%d/%m/%y'))


 
Et en dernier, ajouter la commande au bouton.
 

Code :
  1. bouton_aujourdhui=Button(frame2, text="aujourd hui", command=aujourdhui)


 
Maintenant, il ne reste plus qu'à faire d'autres fonctions pour tes autres boutons.
 
Un indice, voir ici pour ajouter des jours à une date.
http://stackoverflow.com/questions [...] -in-python
 
Voilà.


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed