python3 で簡単なアプリを製作する予定です。
フォルダの中を監視し、新しいテキストファイルが出来たら
そのファイルにとある処理をするというものです。
そこでフォルダの中を監視するために
フォルダを監視する処理をwhile
を用いて
更新する変数update_intarbal
監視するかどうかの変数watch_mode
の2つの変数を設定して、watch_mode
が1なら監視、0なら終了する
という組み立てにしようかなと思っています。
実現したい動作は、
アプリを起動する
[アプリ起動]
↓
[tkinterフレーム立ち上がる(Label
:監視モードとButton
:STOP)]
↓
[whileループしている(watch_mode=1
で監視状態)]
アプリを終了する
[tkinterフレームのButton
:STOPを押してwatch_mode=0
に更新する]
↓
[whileループを抜ける(watch_mode=0
)]
↓
[アプリ停止]
という感じで、ストップしたい時は、tkinterのSTOPボタンを押せば
watch_mode
が0に更新されwhileループを抜けるという感じです
なんとか以下のコードを書いたのですが、理想とは程遠く...
今のところtkinter
の動作とwhile
が一緒に動いてくれず
またstopボタンを押してもwatch_modeも更新されず無限ループになってしまします。
もし、詳しい方いらっしゃいましたら、アドバイスを頂けると大変助かります。
python
1import tkinter as tk 2from time import sleep 3 4def main(): 5 watch_mode = 1 #自動変換モード 6 while_loop = 0 #初期動作の管理 7 update_intarval = 5 #更新時間(s) 8 9 while watch_mode == 1: 10 if while_loop == 0: #1回目だけ動作させる 11 while_loop = 1 12 13 showinfo = tk.Tk() 14 15 frame_top = tk.Frame(showinfo,bd=2,relief="ridge") 16 frame_top.pack(fill="x",pady=2) 17 18 label1 = tk.Label(frame_top, text="監視モードだよ") 19 label1.pack(side="left") 20 21 frame_bottom = tk.Frame(showinfo,bd=2) 22 frame_bottom.pack(fill="x") 23 24 def stop_convert(): 25 watch_mode = 0 26 showinfo.destroy() 27 28 button1 = tk.Button(frame_bottom, text="STOP", bg="#f0e68c", fg="#ff0000", command=stop_convert) 29 button1.pack() 30 showinfo.mainloop() 31 32 sleep(update_intarval) 33 print(watch_mode) 34 35if __name__ == '__main__': 36 main()
回答1件
あなたの回答
tips
プレビュー