From f820851db402ee8ec50e823bb1603fd2475ad254 Mon Sep 17 00:00:00 2001 From: Shikiryu Date: Sun, 21 May 2023 15:29:50 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84=20Better=20display=20for=20main=20?= =?UTF-8?q?page=20button=20and=20display=20first=20image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 3 ++- tk.py | 52 ++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index e9e3af0..3c03d0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ dearpygui -pathlib \ No newline at end of file +pathlib +pillow \ No newline at end of file diff --git a/tk.py b/tk.py index e2f33bd..886ec02 100644 --- a/tk.py +++ b/tk.py @@ -2,6 +2,8 @@ from tkinter import * from tkinter import filedialog from pathlib import Path from functools import partial +from PIL import ImageTk, Image +import random root = Tk() root.title("Drawing Training!") @@ -36,6 +38,17 @@ def format_seconds(seconds): return time +def check_lets_draw(): + global selected_folder + global found_images + global timer + + if selected_folder != "" and len(found_images) > 0 and timer != 0: + launch_button.config(state="normal") + else: + launch_button.config(state="disabled") + + def set_timer_in_seconds(user_data): global timer timer = user_data @@ -44,7 +57,30 @@ def set_timer_in_seconds(user_data): if button['text'] == format_seconds(timer): button.config(bg="blue") else: - button.config(bg="grey") + button.config(bg="SystemButtonFace") + check_lets_draw() + + +def lets_draw(): + global found_images + image_window = Toplevel(root) + image_window.title("Image") + image_window.geometry("200x200") + random.shuffle(found_images) + image = found_images[0] + found_images.pop(0) + display_new_image(image_window, image) + + +def display_new_image(image_window, image): + image1 = Image.open(image) + test = ImageTk.PhotoImage(image1) + + label1 = Label(image_window, image=test) + label1.image = test + + # Position image + label1.place(x=0, y=0) def select_folder(): @@ -56,6 +92,7 @@ def select_folder(): 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))) + check_lets_draw() title = Label(root, text="Drawing Training") @@ -70,15 +107,22 @@ folder_name.pack() images_len = Label(root, text="Found : " + str(len(found_images))) images_len.pack() +button_frame = Frame(root) +button_frame.pack(fill=X) + timers = [30, 45, 60, 120, 300, 600] buttons = [] +i = 0 for i in timers: t = i - new_button = Button(root, text=format_seconds(t), command=partial(set_timer_in_seconds, t)) - new_button.pack(side="left") + new_button = Button(button_frame, text=format_seconds(t), command=partial(set_timer_in_seconds, t)) + # new_button.pack(side="left") buttons.append(new_button) + button_frame.columnconfigure(i, weight=1) + new_button.grid(row=0, column=i, sticky=W + E) + i += 1 -launch_button = Button(root, text="Let's draw!") +launch_button = Button(root, text="Let's draw!", command=lets_draw, state="disabled") launch_button.pack(side="bottom") root.mainloop()