在迭代中遇到麻烦并在python中使用tkinter进行分配

时间:2016-03-23 23:48:33

标签: python

我正在设计一个 Mastermind 游戏,到目前为止已经想出了一个通过按下按钮迭代颜色列表来改变颜色的圆圈:

set_up_answer = []

color_iteration1 = itertools.cycle(('blue', 'green', 'orange', 'red','yellow'))

def callback1():
    mcircle1 = mycanvas.create_oval(10,620,86,675,outline='#000000',fill=next(color_iteration1))
    res1 = mycanvas.itemcget(mcircle1, 'fill')
    set_up_answer.append(res1)

B1 = Button(root,text='B1',command =callback1)

请记住,这不是完整的代码***,如果我多次按下按钮浏览迭代列表,最后会说出包含填充的圆圈'橙色&#39 ;然后将其添加到(set_up_answer)以与其他圈子进行比较,它返回的内容类似于[' blue',' green',' orange'],意思是它返回迭代列表中的每个颜色,然后是实际填充以及实际填充颜色,如何将填充返回的值限制为实际迭代列表的特定颜色?

1 个答案:

答案 0 :(得分:1)

怎么样:

def callback1():
    color = next(color_iteration1)
    mcircle1 = mycanvas.create_oval(10,620,86,675,outline='#000000',fill=color)
    set_up_answer.append(color)

使用mycanvas.itemcget似乎非常迂回,可能是您问题的原因(我不知道tkinter所以我无法告诉)。