前提
while True:によるループとtkinterのroot.mainloop()を同時に使う方法を探しています。
この質問のために例となる2つのプログラムを作成しました。
1つ目が1秒毎にprintしていく数字が1ずつ大きくなるプログラム。
2つ目が1回ボタンをクリックするごとに20ずつ数字が減っていくプログラム。
この2つのプログラムを組み合わせて1秒ごとに1ずつ数字が大きくなりつつ
ボタンを押すと20ずつ数字が減るプログラムを書くにはどうすればよろしいでしょうか?
実現したいこと
- printしていく数字が1秒ごとに1ずつ数字が大きくなる
- printしていく数字がボタンをクリックするごとに20ずつ数字が減っていく
該当のソースコード
1秒毎にprintしていく数字が1ずつ大きくなるプログラム。
python
1import time 2i = 0 3while True: 4 print(i) 5 i+=1 6 time.sleep(1)
1回ボタンをクリックするごとに20ずつ数字が減っていくプログラム。
python
1import tkinter as tk 2 3i = 100 4 5def btn_clicked(): 6 global i 7 print(i) 8 i -= 20 9 10# ウィンドウ作成 11root = tk.Tk() 12 13# ボタンの作成と配置 14button1 = tk.Button(root, text="Button", command=btn_clicked) 15button1.place(x=10, y=20, width=100, height=50) 16 17# メインループ 18root.mainloop()
after を使うと良いのでは。
https://daeudaeu.com/tkinter_after/

回答2件
あなたの回答
tips
プレビュー