L'argument background ne marche pas dans un Bouton TKinter

Résolu/Fermé
Veyten - Modifié le 30 mars 2022 à 14:13
Veyten Messages postés 6 Date d'inscription dimanche 27 mars 2022 Statut Membre Dernière intervention 30 mars 2022 - 28 mars 2022 à 17:48
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 dimanche 27 mars 2022 Statut Membre Dernière intervention 30 mars 2022 2
Modifié le 28 mars 2022 à 18:35
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 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 27 mars 2022 à 10:39
Bonjour,

Bizarre, chez moi, ca marche:


Peut-être qu'avec le code complet, on y verrait plus clair ...
0
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 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > Veyten
27 mars 2022 à 11:12
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 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
27 mars 2022 à 11:14
peut-être devrions-nous tester avec ton fichier logo.png?
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
27 mars 2022 à 11:16
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
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 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
27 mars 2022 à 15:11
cela donnait quoi chez toi avec fg aussi à #68F004?
0
Veyten Messages postés 6 Date d'inscription dimanche 27 mars 2022 Statut Membre Dernière intervention 30 mars 2022 2 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
27 mars 2022 à 17:11
cela donnait ceci :

0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > Veyten Messages postés 6 Date d'inscription dimanche 27 mars 2022 Statut Membre Dernière intervention 30 mars 2022
27 mars 2022 à 17:24
donc avec les deux spécifiés en vert clair, le background était blanc?
0
Veyten Messages postés 6 Date d'inscription dimanche 27 mars 2022 Statut Membre Dernière intervention 30 mars 2022 2 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
27 mars 2022 à 17:51
c'est ça, oui.
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > Veyten Messages postés 6 Date d'inscription dimanche 27 mars 2022 Statut Membre Dernière intervention 30 mars 2022
27 mars 2022 à 19:31
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
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 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
27 mars 2022 à 15:10
C'est un Mac avec couleurs? Mon dernier étant en noir et blanc (et gris)...
0
Veyten > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
27 mars 2022 à 17:01
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
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