这是我的代码:
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))
问题:background =“#CCCCCC”不会改变按钮的颜色...... 我试着查看tkinter的文档,并进行了进一步的搜索,但我没有找到它的解决方案。我希望有人可以提供帮助。
PS:我在mac上编码
提前感谢您的帮助!
答案 0 :(得分:-1)
您的代码确实有效,只是'#CCCCCC'
与默认颜色非常相似。所以很难区分它们。
如果您为文本而不是背景设置颜色,例如使用foreground
选项,则会使文本“隐身”:
import tkinter as tk
root = tk.Tk()
btn = tk.Button(root, text="asd")
btn['fg'] = '#CCCCCC'
btn.pack()
root.mainloop()
使用this answer可以检查颜色的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
和#CCCCCC
非常相似,尤其是当您想到参考灰色的接近程度以及它的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()