Доработать готовый код

Дмитро2 года в сервисе
Данные заказчика будут вам доступны после подачи заявки
19.01.2024

Я написал код на Python с помощью чат-бота GPT. Суть кода заключается в сравнении чисел для статистики. В первом меню вводится первое число, во втором меню - второе число, и я сохраняю результат, нажав на кнопку. Если первое число больше второго, цвет будет зеленым. Если второе число больше первого, цвет будет красным. Если числа равны, цвет будет желтым. Эта часть кода уже сделана, так что при открытии кода все будет понятно.

Однако, осталось реализовать статистику. В данный момент, когда я нажимаю кнопку сохранить, сохраняется только один цвет. Но мне нужно, чтобы было 500-800 квадратиков слева с сохранением цвета и соответствующая статистика справа. Это несложная задача, но трудно объяснить. Пожалуйста, исправьте ошибки в коде и помогите реализовать статистику.не могу прикрипить файл в таком формате не поддерживается так что вот код:

import tkinter as tk

from datetime import datetime

def update_color1(*args):

num1 = get_number(entry1.get())

num2 = get_number(entry2.get())

if num1 is not None and num2 is not None:

if num1 > num2:

color1 = "green"

elif num2 > num1:

color1 = "red"

else:

color1 = "yellow"

else:

color1 = "white"

label_color1.config(bg=color1)

def update_color2(*args):

num3 = get_number(entry3.get())

num4 = get_number(entry4.get())

if num3 is not None and num4 is not None:

if num3 > num4:

color2 = "green"

elif num4 > num3:

color2 = "red"

else:

color2 = "yellow"

else:

color2 = "white"

label_color2.config(bg=color2)

def update_time():

current_time = datetime.now().strftime("%H:%M:%S")

time_label.config(text=current_time, font=("Courier", 25, "bold"))

time_label.after(1000, update_time)

def paste_numbers(event):

clipboard_data = root.clipboard_get().strip()

focused_entry = root.focus_get()

if focused_entry == entry1:

num = get_number(clipboard_data)

if num is not None:

entry1.delete(0, tk.END)

entry1.insert(0, format_number(num))

elif focused_entry == entry2:

num = get_number(clipboard_data)

if num is not None:

entry2.delete(0, tk.END)

entry2.insert(0, format_number(num))

elif focused_entry == entry3:

num = get_number(clipboard_data)

if num is not None:

entry3.delete(0, tk.END)

entry3.insert(0, format_number(num))

elif focused_entry == entry4:

num = get_number(clipboard_data)

if num is not None:

entry4.delete(0, tk.END)

entry4.insert(0, format_number(num))

def get_number(value):

try:

return float(value)

except ValueError:

return None

def format_number(num):

if num.is_integer():

return str(int(num))

else:

return str(num)

def save_color1():

color = label_color1.cget("bg")

stat_label1.config(bg=color)

def save_color2():

color = label_color2.cget("bg")

stat_label2.config(bg=color)

root = tk.Tk()

root.title("Окно с числами и цветом")

root.geometry("500x400")

frame1 = tk.Frame(root)

frame1.pack(side=tk.LEFT, padx=20, pady=20, anchor="n")

frame2 = tk.Frame(root)

frame2.pack(side=tk.LEFT, padx=20, pady=20, anchor="n")

label1 = tk.Label(frame1, text="Первое число:")

label1.pack()

entry1 = tk.Entry(frame1)

entry1.pack()

label2 = tk.Label(frame1, text="Второе число:")

label2.pack()

entry2 = tk.Entry(frame1)

entry2.pack()

button_save_color1 = tk.Button(frame1, text="Сохранить цвет", command=save_color1)

button_save_color1.pack()

label3 = tk.Label(frame2, text="Третье число:")

label3.pack()

entry3 = tk.Entry(frame2)

entry3.pack()

label4 = tk.Label(frame2, text="Четвертое число:")

label4.pack()

entry4 = tk.Entry(frame2)

entry4.pack()

button_save_color2 = tk.Button(frame2, text="Сохранить цвет", command=save_color2)

button_save_color2.pack()

color_frame = tk.Frame(root)

color_frame.pack(side=tk.BOTTOM, pady=20)

label_color1 = tk.Label(color_frame, bg="white", width=10, height=5)

label_color1.pack(side=tk.LEFT, padx=10)

label_color2 = tk.Label(color_frame, bg="white", width=10, height=5)

label_color2.pack(side=tk.LEFT, padx=10)

stat_frame = tk.Frame(root)

stat_frame.pack(side=tk.BOTTOM, pady=10)

stat_label1 = tk.Label(stat_frame, bg="white", width=10, height=5)

stat_label1.pack(side=tk.LEFT, padx=10)

stat_label2 = tk.Label(stat_frame, bg="white", width=10, height=5)

stat_label2.pack(side=tk.LEFT, padx=10)

time_label = tk.Label(root, text="", font=("Courier", 25, "bold"))

time_label.pack(side=tk.TOP, pady=20)

entry1.bind("", update_color1)

entry2.bind("", update_color1)

entry3.bind("", update_color2)

entry4.bind("", update_color2)

update_time()

root.bind("", paste_numbers)

root.mainloop()

Заявки фрилансеров