Bonjour a tous,
je suis en train de terminer mon script en python de génération de mail automatique en fonction de quelques variables.
Tout fonctionne a merveille et j'ai voulu ajouter 2 scrollbar a mon tk.Text afin de ne pas avoir une trop grosse fenêtre.
la scrollbarY fonctionne parfaitement mais pour la X c'est une autre histoire.
mon texte se réorganise et fait des sauts a la ligne tout seul.
auriez vous une idée pour contrer cela?
voici mon code:
import tkinter as tk
def copy_text_generated():
contain=text_generated.get(1.0,tk.END)
text_generated.clipboard_append(contain)
def generate_and_insert_message():
msg_structure = [
"Bonjour ",label_c.get(tk.ACTIVE)," ",entry_name.get(),
",\n\n",
"Votre ",entry_desc_ot.get()," a été retrouvé(e).",
"\n\n",
"Pour récupérer celui-ci, une taxe de restitution d'un montant de ", entry_tax_amount.get(), " € vous sera demandé.",
"\n\n",
"2 solutions s'offrent ensuite à vous pour récupérer votre ",entry_desc_ot.get(),".",
"\n\n",
"\t","-Vous pouvez venir le chercher directement au service objets trouvés.",
"\n\t","-Demander l'expédition de votre ", entry_desc_ot.get()," à votre adresse.",
"\n\t\t","Pour cela il faudra nous fournir:",
"\n\t\t\t","-Une photocopie de votre pièce d'identité.",
"\n\t\t\t","-Un chèque de XXX correspondant au frais d'expéditions.",
"\n\t\t\t","-Un chèque de XXX correspondant aux frais de restitution.",
"\n\t\t\t","Merci de préciser dans le courrier la référence de l'objet N°",entry_num_ot.get()," afin de facilité notre tâche d'association des chèques à l'objet lui-même.",
"\n\t\t\t","-L'adresse complète à laquelle envoyer l'objet.",
"\n\t\t","Le tout à l'adresse suivante :",
"\n\t\t\t","XXXX",
"\n\t\t\t","XXXX",
"\n\t\t\t","XXXX",
"\n\t\t\t","XXXX",
"\n\t\t","Après réception de ceux-ci votre ", entry_desc_ot.get(), " pourra être expédier si vous choisissez cette deuxième option.",
"\n\n",
"\n Bonne journée à vous.",
"\n",
"Cordialement."]
text_generated.delete(1.0, tk.END)
text_generated.insert("1.0", "".join(value for value in msg_structure))
fenetre = tk.Tk()
fenetre.title("OT")
fenetre.geometry("400x550")
label_c = tk.Label(fenetre, text="Civilité : ")
label_c.grid(column=0, row=1, sticky="e", pady=2)
label_c = tk.Listbox(fenetre, width=31, height=0)
label_c.grid(column=1, row=1, columnspan=2)
for item in ["Madame", "Monsieur"]:
label_c.insert(tk.END, item)
label_name = tk.Label(fenetre, text="Nom : ")
label_name.grid(column=0, row=3, sticky="e", pady=2)
entry_name = tk.Entry(fenetre, width=31)
entry_name.grid(column=1, row=3, columnspan=2)
label_desc_ot = tk.Label(fenetre,text="Description OT : ",)
label_desc_ot.grid(column=0, row=4, sticky="e", pady=2)
entry_desc_ot = tk.Entry(fenetre, width=31)
entry_desc_ot.grid(column=1, row=4, columnspan=2)
label_num_ot = tk.Label(fenetre, text="Numéro de l'OT : ")
label_num_ot.grid(column=0, row=5, sticky="e", pady=2)
entry_num_ot = tk.Entry(fenetre, width=31)
entry_num_ot.grid(column=1, row=5, columnspan=2)
label_tax_amount = tk.Label(fenetre, text="Montant de la taxe : ")
label_tax_amount.grid(column=0, row=6, sticky="e", pady=2)
entry_tax_amount = tk.Entry(fenetre, width=31)
entry_tax_amount.grid(column=1, row=6, columnspan=2)
label_generated_text = tk.Label(fenetre, text="Texte généré : ")
label_generated_text.grid(column=0, row=12, sticky="nw", pady=2)
# Création de la barre de défilement
scrollbar_y = tk.Scrollbar(fenetre)
scrollbar_y.grid(column=2, row=12, sticky='ns')
scrollbar_x = tk.Scrollbar(fenetre, orient='horizontal')
scrollbar_x.grid(column=1, row=13, sticky='ew')
# Modification du widget Text pour utiliser la barre de défilement
text_generated = tk.Text(fenetre, height=20, width=30, yscrollcommand=scrollbar_y.set, xscrollcommand=scrollbar_x.set)
text_generated.grid(column=1, row=12)
# Configuration de la barre de défilement pour qu'elle défile le widget Text
scrollbar_y.config(command=text_generated.yview)
scrollbar_x.config(command=text_generated.xview)
but_copy = tk.Button(fenetre, text="Copier le texte généré", command=copy_text_generated, width=30)
but_copy.grid(column=1, row=11, columnspan=2, pady=2)
but_generate_text = tk.Button(fenetre, text="Générer", command=generate_and_insert_message, width=30)
but_generate_text.grid(column=1, row=10, columnspan=2, pady=2)
entry_name.focus_set()
fenetre.mainloop()