私の質問はこれに似ています:PythonTKinter複数の操作。ただし、提供された回答は、使用可能な関数のリストが記載された記事を指しているため、役に立ちません。ソリューションの実際の実装を見たいのですが。
私の質問:フレームに2つのボタンがあります。トグル変数がtrueに設定されている限り、1つのボタンで「実行」関数が呼び出されます。2番目のボタンは、トグル値をFalseに設定します。実行ボタンを押すと「実行」機能を継続したいのですが、2番目の(falseを切り替える)ボタンを押すと停止します。ただし、「実行」を押すとフレームが動かなくなります。コールバックのせいでわかりました。どうすればこれを修正できますか?これが私のサンプルコードです:
from Tkinter import *
from time import sleep
class App:
def __init__(self, master):
self.toggle = False
frame = Frame(master)
frame.pack()
self.exeButton = Button(frame, text="Execute", fg="blue", command=self.execute)
self.exeButton.pack(side=LEFT)
self.tOffButton = Button(frame, text="Toggle Off", command=self.toggleOff)
self.tOffButton.pack(side=LEFT)
def execute(self):
self.toggle = True
while(self.toggle):
print "hi there, everyone!"
sleep(2)
def toggleOff(self):
self.toggle = False
root = Tk()
app = App(root)
root.mainloop()