如何在Tkinter中循环显示图像?

时间:2017-10-04 02:51:18

标签: python python-3.x class tkinter

我希望按钮的图像循环显示所有可能的披萨图像,但是当我点击它时会抛出以下错误:

self.config(image=next(self.images))
AttributeError: 'buttonInitialize' object has no attribute 'config'

这是代码。我知道这很难看,对不起。我几乎不懂python类,所以我无法弄清楚如何将重复的部分分解出来

from tkinter import *
from itertools import cycle

class buttonInitialize:

    def __init__ (self,enabler):
        frame=Frame(enabler)
        frame.pack()

        pizzaList=[]
        pizzaList.append(PhotoImage(file="Cheese.png").zoom(10))
        pizzaList.append(PhotoImage(file="AvocadoWSauce.png").zoom(10))
        pizzaList.append(PhotoImage(file="AvocadoWCheese.png").zoom(10))

        self.images=cycle(pizzaList)
        self.printButton=Button(frame,image=pizzaList[0] ,command=self.nextPizza)
        self.printButton.pack(side=LEFT)

    def nextPizza(self):
        self.config(image=next(self.images))

root=Tk()
c=buttonInitialize(root)
root.mainloop()

1 个答案:

答案 0 :(得分:1)

使用self.printButton.config()

而不是self.config()