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