L'argument background ne marche pas dans un Bouton TKinter
Résolu
Veyten
-
Veyten Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Veyten Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis débutant en Python. J'ai codé un script avec
Alors que j'ai paramétré
Comment faire pour changer la couleur de background si cet argument ne fonctionne pas, et pourquoi ne marche-t-il pas ?
Merci d'avance,
Veyten.
Je suis débutant en Python. J'ai codé un script avec
tkinter, mais j'ai un bouton qui ne marche pas :
generate_button = Button(right_frame, text="Générer", font=("Arial", 20), bg='#68F004', fg='white', relief=SUNKEN, bd=0, highlightthickness=0, command=generate_passwd)
Alors que j'ai paramétré
bg='#68F004', j'obtiens un arrière-plan gris et non vert.
Comment faire pour changer la couleur de background si cet argument ne fonctionne pas, et pourquoi ne marche-t-il pas ?
Merci d'avance,
Veyten.
A voir également:
- L'argument background ne marche pas dans un Bouton TKinter
- Bouton reinitialisation pc - Guide
- Diagnostic bouton photo - Accueil - Outils
- Comment faire une capture d'écran sur un samsung sans bouton ? - Guide
- Bouton shift pc - Forum Jeux vidéo
- Bouton home clavier ✓ - Forum PC portable
6 réponses
Merci à tous de m'avoir aidé !
C'est finalement yg_be qui a trouvé la réponse, consultable ici :
https://stackoverflow.com/questions/1529847/how-to-change-the-foreground-or-background-colour-of-a-tkinter-button-on-mac-os
Sur MacOS, les boutons sont gérés différemment. Tkinter ne parvient pas à modifier la couleur de l'arrière-plan du bouton pour cette raison. Heureusement, il existe un module, tkmacosx, à importer en plus de Tkinter. Il laisse les commandes de Tkinter, mais corrigées pour MacOS. Il me permet donc de changer le bg et donne un look un peu plus "mac" au bouton.
Le résultat avec Tkmacosx associé à Tkinter est le suivant :

Merci à tous/toutes ceux/celles qui ont donné un peu de leur temps pour essayer de m'aider, cela réchauffe le cœur de voir qu'il existe encore un peu d'entraide dans ce monde de fous.
Veyten
C'est finalement yg_be qui a trouvé la réponse, consultable ici :
https://stackoverflow.com/questions/1529847/how-to-change-the-foreground-or-background-colour-of-a-tkinter-button-on-mac-os
Sur MacOS, les boutons sont gérés différemment. Tkinter ne parvient pas à modifier la couleur de l'arrière-plan du bouton pour cette raison. Heureusement, il existe un module, tkmacosx, à importer en plus de Tkinter. Il laisse les commandes de Tkinter, mais corrigées pour MacOS. Il me permet donc de changer le bg et donne un look un peu plus "mac" au bouton.
Le résultat avec Tkmacosx associé à Tkinter est le suivant :

Merci à tous/toutes ceux/celles qui ont donné un peu de leur temps pour essayer de m'aider, cela réchauffe le cœur de voir qu'il existe encore un peu d'entraide dans ce monde de fous.
Veyten
Bonjour,
Bizarre, chez moi, ca marche:
Peut-être qu'avec le code complet, on y verrait plus clair ...
Bizarre, chez moi, ca marche:
Peut-être qu'avec le code complet, on y verrait plus clair ...
Bonjour,
Le code complet est :
Je sais que ce n'est pas répartit correctement en fonctions, mais il ne me semble pas que cela ait un effet sur l'exécution de mon programme.
Merci,
Veyten
Le code complet est :
import string from random import randint, choice from tkinter import * def generate_passwd(): passwd_min = 6 passwd_max = 18 all_chars = string.ascii_letters + string.punctuation + string.digits password = "".join(choice(all_chars)for x in range(randint(passwd_min, passwd_max))) password_entry.delete(0, END) password_entry.insert(0, password) window = Tk() window.title("Générateur de mot de passe") window.geometry() window.minsize(720, 480) window.iconbitmap('logo.png') window.config(background='#5EFBDC') frame = Frame(window, bg='#5EFBDC') # ajouter image width = 300 height = 300 image = PhotoImage(file="logo.png").zoom(50).subsample(60) canvas = Canvas(frame, width=width, height=height, bg='#5EFBDC', bd=0, highlightthickness=0) canvas.create_image(width/2, height/2, image=image) canvas.grid(row=0, column=0, sticky=W) right_frame = Frame(frame, bg='#5EFBDC') label_title = Label(right_frame, text="Mot de passe", font=("Helvetica", 20), bg='#5EFBDC', fg='white') label_title.pack() # créer un champ/input password_entry = Entry(right_frame, font=("Helvetica", 20), bg='#5EFBDC', fg='white') password_entry.pack() # créer un bouton generate_button = Button( right_frame, text="Générer", font=("Arial", 20), bg='#68F004', fg='#68F004', relief=SUNKEN, bd=0, highlightthickness=0, command=generate_passwd ) # curieusement l'argument 'bg=' n'a pas d'effet et le background reste gris alors qu'il devrait être vert. generate_button.pack(pady=10, fill=X) right_frame.grid(row=0, column=1, sticky=W) frame.pack(expand=YES) # créer barre de menu menu_bar = Menu(window) file_menu = Menu(menu_bar, tearoff=0) file_menu.add_command(label="Nouveau", command=generate_passwd) file_menu.add_command(label="Quitter", command=window.quit) menu_bar.add_cascade(label="Fichier", menu=file_menu) window.config(menu=menu_bar) window.mainloop()
Je sais que ce n'est pas répartit correctement en fonctions, mais il ne me semble pas que cela ait un effet sur l'exécution de mon programme.
Merci,
Veyten
bg = fg car j'essayais de mettre bg à #68F004, mais comme il restait gris, j'ai mis fg aussi à #68F004 car celui-ci était blanc et donc illisible en blanc sur gris clair.
Je vais essayer de mettre à jour Tkinter et voir si cela résout le problème.
Je vais essayer de mettre à jour Tkinter et voir si cela résout le problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je suis sur MacOS, peut-être la façon il gère les fenêtres n'est-elle pas compatible ?
Je vais essayer sur un Linux.
Je vais essayer sur un Linux.