Как сделать обновление информации в label? Библиотека customtkinter. Python

Вот мой код (сокращение дробей):

import customtkinter as ctk
import math

ctk.set_appearance_mode("System")
ctk.set_default_color_theme("blue")

root = ctk.CTk()
root.title('Дроби')
root.geometry('300x300')
root.resizable(0, 0)

def sokr():
    ch = int(chis.get())
    zn = int(znam.get())
    print(ch)
    print(zn)
    nod = math.gcd(ch, zn)
    print(nod)
    a = ch // nod
    b = zn // nod
    print(a)
    print(b)
    print('success')
    lb = ctk.CTkLabel(master=root, text=f'НОД - {nod}, числитель - {a}, знаменатель {b}').pack(pady=130)


chis = ctk.CTkEntry(master=root, placeholder_text='Числитель')
chis.place(relx=0.5, rely=0.15, anchor=ctk.CENTER)
znam = ctk.CTkEntry(master=root, placeholder_text='Знаменатель')
znam.place(relx=0.5, rely=0.25, anchor=ctk.CENTER)
button = ctk.CTkButton(master=root, text="ВВОД", command=sokr)
button.place(relx=0.5, rely=0.38, anchor=ctk.CENTER)

root.mainloop()

хочу сделать, чтобы, если вводить новые данные в entry числитель и entry знаменатель, и нажимать кнопку ВВОД данные в label обновлялись. Заранее спасибо!


Ответы (1 шт):

Автор решения: Donovan

Для этого нужно создать label с пустым текстом и менять значения text через метод configure() в нужной функции Пример кода:

import customtkinter as ctk
import math

ctk.set_appearance_mode("System")
ctk.set_default_color_theme("blue")

root = ctk.CTk()
root.title('Дроби')
root.geometry('300x300')
root.resizable(0, 0)

def sokr():
    ch = int(chis.get())
    zn = int(znam.get())
    print(ch)
    print(zn)
    nod = math.gcd(ch, zn)
    print(nod)
    a = ch // nod
    b = zn // nod
    print(a)
    print(b)
    print('success')
    Label.configure(text = f'НОД - {nod}, числитель - {a}, знаменатель {b}') #lb = ctk.CTkLabel(master=root, text=f'НОД - {nod}, числитель - {a}, знаменатель {b}').pack(pady=130)


chis = ctk.CTkEntry(master=root, placeholder_text='Числитель')
chis.place(relx=0.5, rely=0.15, anchor=ctk.CENTER)
znam = ctk.CTkEntry(master=root, placeholder_text='Знаменатель')
znam.place(relx=0.5, rely=0.25, anchor=ctk.CENTER)
button = ctk.CTkButton(master=root, text="ВВОД", command=sokr)
button.place(relx=0.5, rely=0.38, anchor=ctk.CENTER)

Label = ctk.CTkLabel(root, text="") # lb
Label.pack(pady=130) # lb.pack()

root.mainloop()
→ Ссылка