如何获得按钮的背景色?

时间:2019-01-15 00:34:12

标签: python tkinter

我是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'”

1 个答案:

答案 0 :(得分:1)

您的错误是由第12行和第13行引起的,其中您写了$(space)。它应该只是command=self.movebutton()。对于command=self.movebutton选项,您要引用要执行的函数,而不是执行它。在函数名称后放置command符号表示您正在执行(不引用)该函数。这是一个错误,因为在创建属性()(即tkinter尚未创建属性)时,您还正在执行使用self.button的函数。