ボタンが押されたすべての2つの文字列を交互に切り替えたいと思います。たとえば、最初にボタンのラベルを「こんにちは」に変更したい場合、2回目にボタンを押すと「さようなら」と表示され、3回目は「こんにちは」に戻ります。最良の解決策はカウンターを使用することでしょうか? またはバインディング?(実際にどのように機能するかはわかりません)
質問する
99 次
1 に答える
1
私はこれに使用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()
于 2012-10-27T20:07:19.673 に答える