Python Forum

Full Version: Can't change the colour of Tk button text
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Please help! This code doesn't work, but doesn't produce an error.

from tkinter import *
master = Tk()
button = Button(master, text="some text", bg="red")
button.grid(column=0, row=0)

This code is a simplified version of some code I'm using in a much bigger project. I am using Python 3 on a Mac and Raspberry Pi. The colour change option doesn't seem to work on the Mac or the Pi for buttons, but does for labels, etc., .
with ttk you can use a style command, can't remember if this works with plain tkinter, you'll have to check.
But, with plain tkinter you can change background and foreground colors to get same effect, example:
>>> import tkinter
>>> root = tkinter.Tk()
>>> xx = tkinter.Button(root, text='Hello', bg="white", fg="blue")
>>> xx.pack()
>>> root.mainloop()
Thank you for your response.
I've tried your example code and that doesn't seem to work either.
I tried it, and indeed it does work.
if you need it in a file to try, create a file named trycolor.py
and place this code in the file:

trycolor.py:
import tkinter

root = tkinter.Tk()
xx = tkinter.Button(root, text='Hello', bg="white", fg="blue")
xx.pack()
root.mainloop()
Then run it (from command line) using:
python trycolor.py
ah, a bit more experimenting.. it does work on my Pi, but not on my Mac..
(Feb-27-2019, 09:02 PM)Pilover Wrote: [ -> ]ah, a bit more experimenting.. it does work on my Pi, but not on my Mac..

This failure of Tkinter Buttons to have their color changed on Mac is a well-known and long-standing issue. It's only for Buttons, not Labels.

I wrote a project called TTWidgets which supports multi-font, multi-color, multi-image Buttons and Labels. It's based on the Label widget, so it works around the MacOS Button color issue.

Check out https://pypi.org/project/ttwidgets/

from ttwidgets import TTButton

The TTButton API is a superset of the Tkinter.Button API.
There is also CustomTkinter, which is close to the tkinter widgets. Note that bg in tkinter is fg in customtkinter, and fg is text_color.