Transparence de la couleur de fond d'une Bounding Box
Citation de Didier_93 le 31 janvier 2026, 17 h 55 minBonjour.
Je suis un débutant sur Python. Qui pourrait m'indiquer comment régler la transparence de la couleur de fond de la bounding box qui encadre le texte afin qu'elle ne le cache pas ?
Merci d'avance pour vos réponses.
Bonjour.
Je suis un débutant sur Python. Qui pourrait m'indiquer comment régler la transparence de la couleur de fond de la bounding box qui encadre le texte afin qu'elle ne le cache pas ?
Merci d'avance pour vos réponses.
Citation de PythonTech le 1 février 2026, 20 h 58 minSalut Didier_93
Le problème que tu rencontre est causé par le fait que canva tkinter ne gère pas la transparence! Le rectangle que tu as crée est opaque et il faut mettre le texte au dessus du rectangle. Voici un code que j'ai testé et qui marche bien:
from tkinter import * # ----------------------------- # Fonction pour encadrer un texte # ----------------------------- def encadre_mot(mot, fonte): # Création temporaire du texte (pour calculer la bbox) text_id = canvas.create_text( 400, 300, text=mot, anchor=CENTER, font=fonte, fill=couleur_texte ) # Récupération de la bounding box x1, y1, x2, y2 = canvas.bbox(text_id) # Suppression du texte temporaire canvas.delete(text_id) # Dessin du rectangle (arrière-plan) canvas.create_rectangle( x1 - 10, y1 - 10, x2 + 10, y2 + 10, outline="blue", width=2, fill=couleur_fond ) # Dessin définitif du texte (au-dessus du rectangle) canvas.create_text( 400, 300, text=mot, anchor=CENTER, font=fonte, fill=couleur_texte ) # ----------------------------- # Fenêtre principale # ----------------------------- root = Tk() root.title("Texte encadré - Tkinter") root.geometry("800x600") # ----------------------------- # Canvas # ----------------------------- canvas = Canvas(root, width=800, height=600, bg="white") canvas.pack() # ----------------------------- # Paramètres d'affichage # ----------------------------- couleur_texte = "black" couleur_fond = "#dddddd" # gris clair ma_fonte = ("Arial", 20, "bold") # ----------------------------- # Test # ----------------------------- mot = "Du texte avec Python" encadre_mot(mot, ma_fonte) # ----------------------------- # Boucle principale # ----------------------------- root.mainloop()Voici l'aperçu en exécutant le code:
Si tu rencontre des problèmes, n'hésite pas à poser les ici!
Bonne chance Didier_93!
Salut Didier_93
Le problème que tu rencontre est causé par le fait que canva tkinter ne gère pas la transparence! Le rectangle que tu as crée est opaque et il faut mettre le texte au dessus du rectangle. Voici un code que j'ai testé et qui marche bien:
from tkinter import *
# -----------------------------
# Fonction pour encadrer un texte
# -----------------------------
def encadre_mot(mot, fonte):
# Création temporaire du texte (pour calculer la bbox)
text_id = canvas.create_text(
400, 300,
text=mot,
anchor=CENTER,
font=fonte,
fill=couleur_texte
)
# Récupération de la bounding box
x1, y1, x2, y2 = canvas.bbox(text_id)
# Suppression du texte temporaire
canvas.delete(text_id)
# Dessin du rectangle (arrière-plan)
canvas.create_rectangle(
x1 - 10, y1 - 10,
x2 + 10, y2 + 10,
outline="blue",
width=2,
fill=couleur_fond
)
# Dessin définitif du texte (au-dessus du rectangle)
canvas.create_text(
400, 300,
text=mot,
anchor=CENTER,
font=fonte,
fill=couleur_texte
)
# -----------------------------
# Fenêtre principale
# -----------------------------
root = Tk()
root.title("Texte encadré - Tkinter")
root.geometry("800x600")
# -----------------------------
# Canvas
# -----------------------------
canvas = Canvas(root, width=800, height=600, bg="white")
canvas.pack()
# -----------------------------
# Paramètres d'affichage
# -----------------------------
couleur_texte = "black"
couleur_fond = "#dddddd" # gris clair
ma_fonte = ("Arial", 20, "bold")
# -----------------------------
# Test
# -----------------------------
mot = "Du texte avec Python"
encadre_mot(mot, ma_fonte)
# -----------------------------
# Boucle principale
# -----------------------------
root.mainloop()
Voici l'aperçu en exécutant le code:

Si tu rencontre des problèmes, n'hésite pas à poser les ici!
Bonne chance Didier_93!