如何在tkinter中单独控制每个按钮

时间:2018-05-09 11:47:35

标签: python-3.x tkinter

如何在tkinter中单独控制每个按钮?

这是我的代码:

from tkinter import *

class Minesweeper:

    def __init__(self,action):
        L=[]
        for i in range(15):
            for j in range(15):
                self.action = Button(win, text = "    h    ",command = self.clickMe)
                self.action.grid(column = i, row = j)


    def clickMe(self):

        self.action.configure(foreground = "red")


def main():
    global win
    win = Tk()
    win.title('Minesweeper')
    game = Minesweeper(win)
    win.mainloop()

main()

1 个答案:

答案 0 :(得分:0)

更好的方法是将某个事件绑定到按钮:

from tkinter import *

class Minesweeper:

    def __init__(self, action):
        L=[]
        for i in range(15):
            for j in range(15):
                self.action = Button(win, text="h")
                # bind to button function 'clickMe' that runs while <Button-1> clicked on it
                self.action.bind("<Button-1>", self.clickMe)  
                self.action.grid(column=i, row=j)


    def clickMe(self, event):
        """changes the 'fg' color of the events widget"""
        event.widget.configure(foreground="red")  


def main():
    global win
    win = Tk()
    win.title('Minesweeper')
    game = Minesweeper(win)
    win.mainloop()

main()