Python 3.x Python Tkinter:为什么不';t按钮工作的背景选项

Python 3.x Python Tkinter:为什么不';t按钮工作的背景选项,python-3.x,tkinter,Python 3.x,Tkinter,这是我的代码: for i in range(0, len(btn_txt)): btns.append(tk.Button(calc, text = btn_txt[i], background = "#CCCCCC")) btns[i].grid(column = i % 7, row = i // 7 + 1) btns[i].bind("<Button-1>", lambda event, n = btn_txt[i]: get_key(n)) 范围

这是我的代码:

for i in range(0, len(btn_txt)):
    btns.append(tk.Button(calc, text = btn_txt[i], background = "#CCCCCC"))
    btns[i].grid(column = i % 7, row = i // 7 + 1)
    btns[i].bind("<Button-1>", lambda event, n = btn_txt[i]: get_key(n))
范围(0,len(btn_txt))中的i的
:
btns.append(tk.Button(计算,文本=btn_txt[i],背景=“#cccc”))
基站[i]。网格(列=i%7,行=i//7+1)
btns[i].bind(“,lambda事件,n=btn\u txt[i]:get\u key(n))
问题:background=“#cccc”不会更改我按钮的颜色。。。 我试着查找tkinter的文档并做了进一步的搜索,但没有找到解决方案。我希望有人能帮忙

PS:我在mac上编码


提前感谢您的帮助

您的代码确实有效,只是
“#cccc”
的颜色与默认颜色非常相似。所以很难区分两者之间的区别

例如,如果使用
前景
选项为文本而不是背景上色,则会使文本“不可见”:

import tkinter as tk

root = tk.Tk()

btn = tk.Button(root, text="asd")

btn['fg'] = '#CCCCCC'

btn.pack()

root.mainloop()

使用一个可以检查颜色的RGB值,让我们看看它们产生了什么:

import tkinter as tk

root = tk.Tk()

btn = tk.Button(root, text="asd")

default_rgb = btn.winfo_rgb(btn['bg'])
wanted_rgb = btn.winfo_rgb('#CCCCCC')
reference_rgb = btn.winfo_rgb('grey')

print(default_rgb)
print(wanted_rgb)
print(reference_rgb)

btn.pack()

root.mainloop()
正如您看到的两种颜色一样,默认的
SystemButtonFace
#cccc
非常相似,特别是当您想到参考灰色的接近程度及其rgb值的距离时


请参见下面的示例,了解易于识别的颜色:

import tkinter as tk

root = tk.Tk()

btn = tk.Button(root, text="Colors")

#when button isn't pressed
btn['fg'] = 'orange'
btn['bg'] = 'blue'

#when button is pressed
btn['activeforeground'] = 'red'
btn['activebackground'] = 'green'

btn.pack()

root.mainloop()