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   -
Bonjour,

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:

6 réponses

Veyten Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   2
 
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
2
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour,

Bizarre, chez moi, ca marche:


Peut-être qu'avec le code complet, on y verrait plus clair ...
0
Veyten
 
Bonjour,

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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Veyten
 
bonjour, cela fonctionne aussi chez moi, le bouton est tout vert (comme tu as mis le texte en vert aussi).
J'utilise Thonny.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
peut-être devrions-nous tester avec ton fichier logo.png?
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Chez moi, ca marche, le seul truc, c'est que comme fg = bg, vert sur vert, on ne voit pas le texte du bouton
0
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.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
cela donnait quoi chez toi avec fg aussi à #68F004?
0
Veyten Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   2 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
cela donnait ceci :

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Veyten Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
donc avec les deux spécifiés en vert clair, le background était blanc?
0
Veyten Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   2 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
c'est ça, oui.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Veyten Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Je vois ici plusieurs suggestions de solutions ou de détours.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Veyten
 
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.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
C'est un Mac avec couleurs? Mon dernier étant en noir et blanc (et gris)...
0
Veyten > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Evidemment. Les macs sont en couleurs depuis longtemps et même plus modernes que windows 11 au niveau graphique.

https://www.apple.com/fr/newsroom/2021/06/macos-monterey-introduces-powerful-features-to-get-more-done/
0
Veyten
 
Il semblerait que sur Linux, mon programme fonctionne parfaitement. Le bouton a bien cette couleur verte. C'est peut-être une incompatibilité avec la gestion des boutons dans MacOS.
0