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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
import tkinter as tk
from tkinter import ttk
# Base de dossiers et indice de balayage de la table (part de 0)
# Nom, Prénom, Date de naissance, Type
listeDossiers=[("DUCK","Donald","1934-06-09","M","Canard"),("MOUSE","Mickey","1928-11-18","M","Souris"),("GOOFY","Dingo","1932-05-25","M","Chien"),("COW","Clarabelle","1929-06-28","M","Vache"),("MOUSE","Miss Kitty","1986-07-02","F","Souris"),("DUCK","Daisy","1937-01-09","F","Canard")]
def presentationDate(dateAPresenter):
"""
Parameters
----------
dateAPresenter : TYPE date en format aaaa-mm-jj
DESCRIPTION.
Returns
-------
la date en format jj/mm/aaaa
"""
if len(dateAPresenter)==10:
return dateAPresenter[-2:]+"/"+dateAPresenter[5:7]+"/"+dateAPresenter[0:4]
def btn_PremierDossier():
# On met l'indice de dossier affiché au début
idPersoCourant.set("0")
affichagePersoCourant()
def btn_DossierPrecedent():
# On décrémente l'indice de dossier affiché, sauf si déjà sur premier enregistrement
if int(idPersoCourant.get())>0:
idPersoCourant.set(str(int(idPersoCourant.get())-1))
affichagePersoCourant()
def btn_btn_DossierSuivant():
# On incrémente l'indice de dossier affiché, sauf si déjà sur dernier enregistrement
if int(idPersoCourant.get())<len(listeDossiers)-1:
idPersoCourant.set(str(int(idPersoCourant.get())+1))
affichagePersoCourant()
def btn_DernierDossier():
# On met l'indice de dossier affiché à la fin
idPersoCourant.set(str(len(listeDossiers)-1))
affichagePersoCourant()
def affichagePersoCourant():
# On remplit les Stringvar avec les valeurs correspondantes
refPersoCourant=listeDossiers[int(idPersoCourant.get())]
NomPerso.set(refPersoCourant[0])
PrenomPerso.set(refPersoCourant[1])
SexePerso.set(refPersoCourant[3])
DtNPerso.set(presentationDate(refPersoCourant[2]))
TypePerso.set(refPersoCourant[4])
# On revient au premier onglet de la boîte
#chNomPerso.focus_set()
Onglet1.focus_set()
# Ouverture de la fenêtre de base
FenetreBC_root = tk.Tk()
FenetreBC_root.geometry('1280x777')
FenetreBC_root.title('Cabinet de Phoniatrie Bruno')
# Entrée de mémorisation du personnage en cours d'affichage
idPersoCourant=tk.StringVar()
idPersoCourant_ent=ttk.Entry(FenetreBC_root,textvariable=idPersoCourant)
idPersoCourant_ent.place(x=0,y=0,width=0,height=0)
idPersoCourant.set("0")
FenetreGestion_DossiersP = ttk.Frame(FenetreBC_root)
FenetreGestion_DossiersP.place(x = 0, y = 0, width = 1280, height = 877)
# Ecriture des boutons
# bouton Premier dossier
btn_PremierDossier = ttk.Button(FenetreGestion_DossiersP, text="Prem", command=btn_PremierDossier)
btn_PremierDossier.place(x = 50, y = 600, width = 50, height = 50)
# bouton Dossier précédent
btn_DossierPrecedent = ttk.Button(FenetreGestion_DossiersP, text="Préc", command=btn_DossierPrecedent)
btn_DossierPrecedent.place(x = 100, y = 600, width = 50, height = 50)
# bouton Recherche dossier
# bouton Dossier suivant
btn_DossierSuivant = ttk.Button(FenetreGestion_DossiersP, text="Suiv", command=btn_btn_DossierSuivant)
btn_DossierSuivant.place(x = 250, y = 600, width = 50, height = 50)
# bouton Dernier dossier
btn_DernierDossier = ttk.Button(FenetreGestion_DossiersP, text="Dern", command=btn_DernierDossier)
btn_DernierDossier.place(x = 300, y = 600, width = 50, height = 50)
# bouton Quitter
btn_Quitter = ttk.Button(FenetreGestion_DossiersP, text="Quitter", command=FenetreBC_root.destroy)
btn_Quitter.place(x = 750, y = 600, width = 100, height = 50)
# Construction Table à onglets
OngletAffichageBase = ttk.Notebook(FenetreGestion_DossiersP)
OngletAffichageBase.place(x = 50, y = 100, width = 800, height = 500)
Onglet1 = ttk.Frame(OngletAffichageBase)
Onglet1.place(x = 0, y = 0, width = 795, height = 495)
OngletAffichageBase.add(Onglet1, text = "Etat-civil")
Onglet2 = ttk.Frame(OngletAffichageBase)
Onglet2.place(x = 0, y = 0, width = 795, height = 495)
OngletAffichageBase.add(Onglet2, text = "Diagnostic et correspondants")
Onglet3 = ttk.Frame(OngletAffichageBase)
Onglet3.place(x = 0, y = 0, width = 795, height = 495)
OngletAffichageBase.add(Onglet3, text = "Actes")
Onglet4 = ttk.Frame(OngletAffichageBase)
Onglet4.place(x = 0, y = 0, width = 795, height = 495)
OngletAffichageBase.add(Onglet4, text = "Courriers")
Onglet5 = ttk.Frame(OngletAffichageBase)
Onglet5.place(x = 0, y = 0, width = 795, height = 495)
OngletAffichageBase.add(Onglet5, text = "Photos")
# Définition des StringVar
NomPerso= tk.StringVar()
PrenomPerso= tk.StringVar()
SexePerso= tk.StringVar()
TypePerso= tk.StringVar()
DtNPerso= tk.StringVar()
# Définition des widgets
# Onglet1
etNomPerso=ttk.Label(Onglet1,text="Nom")
etNomPerso.place(x=30,y=60,width=80,height=22)
etPrenomPerso=ttk.Label(Onglet1,text="Prénom")
etPrenomPerso.place(x=380,y=60,width=60,height=22)
chNomPerso=ttk.Entry(Onglet1,textvariable=NomPerso)
chNomPerso.place(x=140,y=60,width=230,height=22)
chPrenomPerso=ttk.Entry(Onglet1,textvariable=PrenomPerso)
chPrenomPerso.place(x=450,y=60,width=200,height=22)
etSexePerso=ttk.Label(Onglet1,text="Sexe")
etSexePerso.place(x=660,y=60,width=40,height=22)
chSexePerso=ttk.Entry(Onglet1,textvariable=SexePerso)
chSexePerso.place(x=700,y=60,width=20,height=22)
etDtNPerso=ttk.Label(Onglet1,text="Date de naissance")
etDtNPerso.place(x=30,y=110,width=110,height=22)
chDtNPerso=ttk.Entry(Onglet1,textvariable=DtNPerso)
chDtNPerso.place(x=140,y=110,width=100,height=22)
# Onglet2 - Juste pour changer d'onglet pour la démo
etTypePerso=ttk.Label(Onglet2,text="Type de personnage")
etTypePerso.place(x=30,y=60,width=120,height=22)
chTypePerso=ttk.Entry(Onglet2,textvariable=TypePerso)
chTypePerso.place(x=160,y=60,width=100,height=22)
# Premier affichage de perso avant lancement de la boucle
affichagePersoCourant()
FenetreBC_root.mainloop() |
Partager