0
我想让我的按钮在两个字符串之间交替按下它的所有东西。例如,第一次我希望按钮将标签更改为“Hi”,则第二次按下该按钮时,它会说“再见”,然后是第三次再次返回“Hi”。最好的解决方案是使用柜台吗?或结合(我听说这件事林不知道它是如何真正起作用)在Tkinter python中绑定2.7
我想让我的按钮在两个字符串之间交替按下它的所有东西。例如,第一次我希望按钮将标签更改为“Hi”,则第二次按下该按钮时,它会说“再见”,然后是第三次再次返回“Hi”。最好的解决方案是使用柜台吗?或结合(我听说这件事林不知道它是如何真正起作用)在Tkinter python中绑定2.7
我会使用itertools.cycle
此:
>>> 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): \t \t \t sel f.buttontext.set( “按钮”) \t \t \t self.label2text = STRINGVAR() \t \t \t self.label2 =标签(self.root,文本= itertools.cycle([ 'Hi''Bye']) ,#由于某种原因,它打印的位置,而不是字符串 – user1733141
@ user1733141:我不能说很多没有看到整个代码,但我已经添加了一个示例来演示如何使用它。 – Avaris