Tkinter python 2.7中的绑定

Tkinter python 2.7中的绑定,python,binding,tkinter,Python,Binding,Tkinter,我想让我的按钮在两个字符串之间切换,只要它按下。例如,第一次我希望按钮将标签更改为“Hi”,第二次按下按钮时,它会说“再见”,第三次它会返回到“Hi”。最好的解决办法是使用计数器吗?或者绑定?(我听说过,我不确定它到底是如何工作的)我会用它: >>> import itertools >>> texts = itertools.cycle(['Hi', 'Bye']) >>> print next(texts) Hi >>>

我想让我的按钮在两个字符串之间切换,只要它按下。例如,第一次我希望按钮将标签更改为“Hi”,第二次按下按钮时,它会说“再见”,第三次它会返回到“Hi”。最好的解决办法是使用计数器吗?或者绑定?(我听说过,我不确定它到底是如何工作的)

我会用它:

>>> import itertools
>>> texts = itertools.cycle(['Hi', 'Bye'])
>>> print next(texts)
Hi
>>> print next(texts)
Bye
>>> print next(texts)
Hi
>>> print next(texts)
Bye
编辑

一个简单的例子:

import itertools
from Tkinter import *

class App:

    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.texts = itertools.cycle(['Hi', 'Bye'])

        self.var = StringVar()
        self.label = Label(frame, textvariable=self.var)
        self.label.pack(side=LEFT)

        self.button = Button(frame, text="Set Text", command=self.change_text)
        self.button.pack(side=LEFT)


    def change_text(self):
        self.var.set(next(self.texts))

root = Tk()
app = App(root)
root.mainloop()

这是我的代码def clicked1(self):self.buttontext.set(“Button”)self.label2text=StringVar()self.label2=Label(self.root,text=itertools.cycle(['Hi''Bye')),#出于某种原因,打印位置而不是string@user1733141:如果不看完整的代码,我不能说太多,但我添加了一个示例来演示如何使用它。