我是tkinter的新手,我想知道如何获取按钮背景色的值或更改按钮背景色的值。
这是一个学校项目,我正在尝试制作一个可运行的棋盘。
import tkinter as tk
class Checkers(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.grid()
self.create_widgets()
def create_widgets(self):
self.button = tk.Button(
self, width=32, height=35,
background='black', command=self.movebutton()
).grid(row=2, column=1, sticky=tk.W)
def movebutton(self):
if self.button['bg'] == 'black':
self.button = tk.Button(
self, width=4, height=2, background='red4'
).grid(row=2, column=1, sticky=tk.W)
root = tk.Tk()
root.title("Checkers")
root.geometry("600x400")
app = Checkers(root)
root.mainloop()
我想用红色方块代替黑色方块,但出现错误“ AttributeError:'Checkers'对象没有属性'button'”
答案 0 :(得分:1)
您的错误是由第12行和第13行引起的,其中您写了$(space)
。它应该只是command=self.movebutton()
。对于command=self.movebutton
选项,您要引用要执行的函数,而不是执行它。在函数名称后放置command
符号表示您正在执行(不引用)该函数。这是一个错误,因为在创建属性()
(即tkinter尚未创建属性)时,您还正在执行使用self.button
的函数。