2023-05-20 14:40:17 +02:00
|
|
|
from tkinter import *
|
|
|
|
from tkinter import filedialog
|
|
|
|
from pathlib import Path
|
|
|
|
from functools import partial
|
|
|
|
|
|
|
|
root = Tk()
|
|
|
|
root.title("Drawing Training!")
|
|
|
|
root.geometry("300x600")
|
|
|
|
|
|
|
|
selected_folder = ""
|
|
|
|
found_images = []
|
|
|
|
timer = 0
|
|
|
|
|
|
|
|
|
2023-05-21 11:48:39 +02:00
|
|
|
def format_seconds(seconds):
|
|
|
|
hours = None
|
|
|
|
minutes = seconds / 60
|
|
|
|
if minutes >= 1:
|
|
|
|
if minutes >= 60:
|
|
|
|
hours = int(minutes / 60)
|
|
|
|
minutes = int(minutes % 60)
|
|
|
|
else:
|
|
|
|
minutes = int(minutes)
|
|
|
|
seconds = seconds % 60
|
|
|
|
else:
|
|
|
|
minutes = None
|
|
|
|
|
|
|
|
time = ""
|
|
|
|
if hours is not None and hours != 0:
|
|
|
|
time += str(hours) + "h"
|
|
|
|
if minutes is not None and minutes != 0:
|
|
|
|
time += str(minutes) + "m"
|
|
|
|
if seconds is not None and seconds != 0:
|
|
|
|
time += str(seconds) + "s"
|
|
|
|
|
|
|
|
return time
|
|
|
|
|
|
|
|
|
2023-05-20 14:40:17 +02:00
|
|
|
def set_timer_in_seconds(user_data):
|
|
|
|
global timer
|
|
|
|
timer = user_data
|
|
|
|
print(timer)
|
|
|
|
for button in buttons:
|
2023-05-21 11:48:39 +02:00
|
|
|
if button['text'] == format_seconds(timer):
|
2023-05-20 14:40:17 +02:00
|
|
|
button.config(bg="blue")
|
|
|
|
else:
|
|
|
|
button.config(bg="grey")
|
|
|
|
|
|
|
|
|
|
|
|
def select_folder():
|
|
|
|
global selected_folder
|
|
|
|
global found_images
|
|
|
|
global folder_name
|
|
|
|
global images_len
|
|
|
|
selected_folder = filedialog.askdirectory()
|
|
|
|
found_images = list(p.resolve() for p in Path(selected_folder).glob("**/*") if p.suffix in {".jpg", ".gif", ".png"})
|
|
|
|
folder_name.config(text="Folder : " + selected_folder)
|
|
|
|
images_len.config(text="Found : " + str(len(found_images)))
|
|
|
|
|
|
|
|
|
|
|
|
title = Label(root, text="Drawing Training")
|
|
|
|
title.pack()
|
|
|
|
|
|
|
|
folder_selector = Button(root, text="Select a folder", command=select_folder)
|
|
|
|
folder_selector.pack()
|
|
|
|
|
|
|
|
folder_name = Label(root, text="Folder : " + selected_folder)
|
|
|
|
folder_name.pack()
|
|
|
|
|
|
|
|
images_len = Label(root, text="Found : " + str(len(found_images)))
|
|
|
|
images_len.pack()
|
|
|
|
|
|
|
|
timers = [30, 45, 60, 120, 300, 600]
|
|
|
|
buttons = []
|
|
|
|
for i in timers:
|
|
|
|
t = i
|
2023-05-21 11:48:39 +02:00
|
|
|
new_button = Button(root, text=format_seconds(t), command=partial(set_timer_in_seconds, t))
|
2023-05-20 14:40:17 +02:00
|
|
|
new_button.pack(side="left")
|
|
|
|
buttons.append(new_button)
|
|
|
|
|
|
|
|
launch_button = Button(root, text="Let's draw!")
|
|
|
|
launch_button.pack(side="bottom")
|
|
|
|
|
|
|
|
root.mainloop()
|