tkinterのボタンに関しての質問
tkinterのボタンに関しての質問
「開始」ボタンを押したら「終了」にtextが変わって
「終了」ボタンを押したら「開始」になるものを作り、
その間に「開始」が押されたら関数を動かすようにしたかったのですが、
ボタンが「開始」のままで関数が終わるまで「終了」になりません。
そこで、非同期処理にしてみたのですが、それでも治りませんでした。
どうすればよいでしょうか?
プログラムはこちらです
import pyautogui,tkinter,time,asyncio
with open("memo.txt","w") as memo:
memo.write("")
class Main:
def __init__(self):
self.aaa = 0
def click_btn(self):
if button["text"] == "開始":
button["text"] = "終了"
while button["text"] != "終了":
pass
self.aaa = 0
asyncio.run(main.loop())
else:
button["text"] = "開始"
self.aaa = 1
async def loop(self):
button["text"] = "終了"
i = 0
while self.aaa == 0:
i += 1
if i >= 10:
break
print(pyautogui.position())
with open("memo.txt","a") as memo:
memo.write(f"{pyautogui.position()}\n")
time.sleep(0.5)
main = Main()
root = tkinter.Tk()
root.title("pc操作自動化アプリ")
root.resizable(False, False)
root.geometry("400x200")
label = tkinter.Label(text='記録するdataの間隔(ミリ秒)', font=("MSゴシック", "10", "bold"))
label.pack()
boxa = tkinter.Entry()
boxa.pack()
button = tkinter.Button(root, text="開始", font=("Times New Roman", 10), command=main.click_btn)
button.place(x=170,y=80)
root.mainloop()#start