Python中的Tkinter .. Tic Tac Toe Game ..按钮错误!

时间:2011-01-09 16:06:46

标签: python tkinter

我是tkinter的新人,所以我是一个乞丐..我需要帮助,因为我正在尝试编程Tic Tac Toe ..我想用一个心形按钮开始游戏区域当玩家点击图像必须改变X或O(另一个gif图像)...... 所以我需要一个函数来帮助我在按钮中切换图像但是当我尝试这样做时它给了我这个错误:AttributeError:'Button'对象没有属性'image'  这是代码的一部分,它给了我这个问题..

class Application(object):

    def __init__(self,fnt2):
        self.photo = PhotoImage(file="game.gif")
        self.lab1 = Label(fnt2, text="WELCOME to the GAME")
        self.lab1.image = self.photo
        self.lab1['background']="#BD5151"
        self.lab1['foreground']="#651268"
        self.lab1.image = self.photo
        self.lab1.pack()

        self.lab2= Label(image=self.photo)
        self.lab2.image= self.photo
        self.lab2['background']="#BD5151"
        self.lab2.pack()
        self.imm0 = PhotoImage(file="start.gif")
        self.imm1 = PhotoImage(file="bianco.gif")
        self.imm2 = PhotoImage(file="ics.gif")


        self.Ent = Button(fnt2, text="Click To Enter The GAME")
        self.Ent['relief']="groove"
        self.Ent['command']=self.Ent_Click
        self.Ent.pack()

    def Changepic_1(self):
        imm0 = PhotoImage(file="start.gif")
        imm1 = PhotoImage(file="bianco.gif")
        imm2 = PhotoImage(file="ics.gif")
        if self.Play.image == self.imm0:
            print('ciao')


    def Ent_Click(self):
        fnt2 = Tk()
        fnt2.title("play it!")
        fnt2.resizable(False,False)
        for r in range(3):
            for c in range(3):
                self.Play = Button(image = self.imm0, command=self.Changepic_1)
                self.Play.grid(row=r,column=c)
        fnt2.mainloop()

1 个答案:

答案 0 :(得分:2)

尝试使用以下方法进行更改:

button.config(image=...)

要了解它已有的图像,您需要进行比较:

button.cget("image") == image.name

(或分别跟踪其状态)

Tk不是面向对象的,所以尽管Tkinter试图让界面更加“Pythonic”,但它可能有点尴尬。