Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tkinter et les Tages pour mon projet de bloc notes

9 octobre 2024 à 23:35:39

Bonjour, j'aimerais un peu d'aide, je suis en train de créer un bloc note en python pour me former mais je n'arrive pas à faire en sorte que l'utilisateur choisisse par exemple gras, mais cela ne change pas toutes les notes sauf celles qu'il va écrire. (Je suis désolé si ce n'est pas très clair 😅)voici le code :

from tkinter import *
from tkinter import filedialog, colorchooser
from tkmacosx import *

police_actuelle = "Arial"
style_actuelle = "normal"
taille_actuelle = 16
liste_a_puces = []
root = Tk()
root.geometry("500x500")
root.minsize(500, 500)

texte = Text(root, font=("Helvetica", 16))
root.title("NotePad")
texte.pack(expand=YES, fill="both")

#Les fichiers

def ouvrir_fichier():
    fichier = filedialog.askopenfilename(title="Ouvir un fichier", filetypes=[("tous les fichiers", "*.txt")], )
    if fichier:
        with open(fichier, "r") as f:
            texte.delete("1.0", END)
            texte.insert(END, f.read())
            root.title(f"NotePad : {fichier}")

def enregistrer_fichier():
    enregistrer = filedialog.asksaveasfilename(title="Enregistrer un fichier", defaultextension=".txt", filetypes=[("Tous les fichiers", "*.txt")])
    if enregistrer:
        with open(enregistrer, "w") as f:
            contenu = texte.get(1.0, END)
            f.write(contenu)

def quitter_fichier():
    root.quit()

menu_bar = Menu(root)
menu_fichier = Menu(menu_bar)
menu_bar.add_cascade(label="Fichier", menu=menu_fichier)
menu_fichier.add_command(label="Ouvrir", command=ouvrir_fichier)
menu_fichier.add_command(label="Enregistrer", command=enregistrer_fichier)
menu_fichier.add_separator()
menu_fichier.add_command(label="Quitter", command=quitter_fichier)

root.configure(menu=menu_bar)

#Les options 

def changer_couleur():
    choix_couleur = colorchooser.askcolor(title="Choisir une couleur")
    texte.configure(bg=choix_couleur[1])
def changer_couleur_texte():
    choix_couleur = colorchooser.askcolor(title="Choisir une couleur")
    texte.configure(fg=choix_couleur[1])

    
menu_couleur = Menu(menu_bar)
menu_bar.add_cascade(label="Couleurs", menu=menu_couleur)
menu_couleur.add_command(label="Couleurs du Fond", command=changer_couleur)
menu_couleur.add_command(label="Couleurs du texte", command=changer_couleur_texte)

#Style texte
def texte_normal():
    global style_actuelle
    style_actuelle = "normal"
    texte.configure(font=(police_actuelle, taille_actuelle, "normal"))

def texte_gras():
    global style_actuelle
    style_actuelle = "bold"
    texte.configure(font=(police_actuelle, taille_actuelle, "bold"))

def texte_italique():
    global style_actuelle
    style_actuelle = "italic"
    texte.configure(font=(police_actuelle, taille_actuelle, "italic"))
def texte_italique_gras():
    global style_actuelle
    style_actuelle = "italic", "bold"
    texte.configure(font=(police_actuelle, taille_actuelle, "italic", "bold"))

menu_style = Menu(menu_bar)
menu_bar.add_cascade(label="Style", menu=menu_style)
menu_style.add_command(label="Gras", command=texte_gras)
menu_style.add_command(label="Italique", command=texte_italique)
menu_style.add_command(label="Gras et Italique", command=texte_italique_gras)
menu_style.add_separator()
menu_style.add_command(label="Normal", command=texte_normal)

#Police
def helvetica():
    global police_actuelle
    police_actuelle = "Helvetica"
    texte.configure(font=("Helvetica", taille_actuelle, style_actuelle))
def inter():
    global police_actuelle
    police_actuelle = "inter"
    texte.configure(font=("Inter", taille_actuelle, style_actuelle))

def arial():
    global police_actuelle
    police_actuelle = "Arial"
    texte.configure(font=("Arial", taille_actuelle, style_actuelle))
def roboto():
    global police_actuelle
    police_actuelle = "roboto"
    texte.configure(font=("roboto", taille_actuelle, style_actuelle))
def tahoma():
    global police_actuelle
    police_actuelle = "tahoma"
    texte.configure(font=("tahoma", taille_actuelle, style_actuelle))
menu_police = Menu(menu_bar)
menu_bar.add_cascade(label="Police", menu=menu_police)
menu_police.add_command(label="Inter", command=inter)
menu_police.add_command(label="Arial", command=arial)
menu_police.add_command(label="Helvetica", command=helvetica)
menu_police.add_command(label="Roboto", command=roboto)
menu_police.add_command(label="Tahoma", command=tahoma)

#Taille

def h1():
    global taille_actuelle
    taille_actuelle = 32
    texte.configure(font=(police_actuelle, 32, style_actuelle))
def h2():
    global taille_actuelle
    taille_actuelle = 24
    texte.configure(font=(police_actuelle, 24, style_actuelle))
def h3():
    global taille_actuelle
    taille_actuelle = 20
    texte.configure(font=(police_actuelle, 20, style_actuelle))
def h4():
    global taille_actuelle
    taille_actuelle = 16
    texte.configure(font=(police_actuelle, 16, style_actuelle))
def h5():
    global taille_actuelle
    taille_actuelle = 14
    texte.configure(font=(police_actuelle, 14, style_actuelle))
def h6():
    global taille_actuelle
    taille_actuelle = 12
    texte.configure(font=(police_actuelle, 12, style_actuelle))
menu_taille = Menu(menu_bar)
menu_bar.add_cascade(label="Taille", menu=menu_taille)
menu_taille.add_command(label="H1", command=h1)
menu_taille.add_command(label="H2", command=h2)
menu_taille.add_command(label="H3", command=h3)
menu_taille.add_command(label="H4", command=h4)
menu_taille.add_command(label="H5", command=h5)
menu_taille.add_command(label="H6", command=h6)



root.mainloop()

merci beaucoup de m'aidé !

  • Partager sur Facebook
  • Partager sur Twitter
9 octobre 2024 à 23:42:33

Bonsoir, concernant votre précédant sujet, j'ai demandé la modification du titre. Je vois que ce n'est pas fait. Pourquoi créer un nouveau sujet?

Merci de modifier le titre comme demandé, si vous avez des difficultés de compréhension des règles du forum ou son utilisation merci de me contacter par message privé en cliquant sur mon pseudo.

Doublon

Les doublons nuisent au bon fonctionnement du forum et sont donc interdits. Si vous vous êtes trompé de section, il suffit de signaler votre sujet au staff pour qu'il le déplace au bon endroit.

Je vous invite à continuer la discussion sur l'autre sujet :  https://openclassrooms.com/forum/sujet/probleme-sur-mon-code-python-6c60a

Liens conseillés

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter