24
Май
2022

Запутался в переменных

Начал пытатся в tkinter. Для начала хотел создать небольшую квест игру которая будет загадывать число а пользователь его отгадывает. Проблема в том, что лейбл при отгадывании накладывается один на другой, и я не понимаю как из одной функции удалить лейбл который обьявлен в другой. Переменная global тоже не помогает. Банальная ошибка, но я не пойму как ее решить?

вот код.

import tkinter
import random

generate_number = random.randint(0, 10)

def game_logic():
    start_label.place_forget()
    if int(ent1.get()) < generate_number:
        number_so_small()
    elif int(ent1.get()) > generate_number:
        number_so_big()
    elif int(ent1.get()) == generate_number:
        number_is_correct()


def number_so_small():
    global lab1
    lab1 = tkinter.Label(text="загаданное число больше чем вы указали", font=("Arial", 10, 'bold'))
    lab1.place(x=90, y=50)


def number_so_big():
    global lab
    lab = tkinter.Label(text='загаданное число меньше чем вы указали', font=("Arial", 10, 'bold'))
    lab.place(x=90, y=50)


def number_is_correct():
    lab.place_forget() //  вот тут ловлю ошибку
    lab1.place_forget() // и вот тут тоже нейм андефайнед
    correct = tkinter.Label(text="молодец!!!", font=("Arial", 10, 'bold'))
    correct.place(x=180, y=50)


window = tkinter.Tk()
datatype = tkinter.IntVar()

entry_w = 480
entry_h = 320
screen_w = window.winfo_screenwidth()
screen_h = window.winfo_screenheight()
window.geometry(f"{entry_w}x{entry_h}"
                f"+{int((screen_w / 2) - (entry_w / 2))}+{int((screen_h / 2) - entry_h)}")

start_label = tkinter.Label(text="Число сгенерировано, приступай!", font=("Arial", 16, 'bold'))
ent1 = tkinter.Entry(window, textvariable=datatype)
but1 = tkinter.Button(text="Ввести число", height=3, width=20, command=game_logic)

but1.place(x=160, y=220)
ent1.place(x=(entry_w / 2) - (5 * 13), y=170)
start_label.place(x=60, y=50)

window.mainloop()

Источник: https://ru.stackoverflow.com/questions/1413294/%D0%97%D0%B0%D0%BF%D1%83%D1%82%D0%B0%D0%BB%D1%81%D1%8F-%D0%B2-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85

Тебе может это понравится...

Добавить комментарий