Изменение названия метки - PullRequest
0 голосов
/ 19 января 2020

(не смотрите весь код, он неполный :))

У меня есть функция сброса, которая сбрасывает имя метки, но эта функция стирает всю метку , Какую функцию (может быть, встроенную в Tkinter) я должен использовать?

from Tkinter import *

months = ['December', 'January', 'February',
          'March', 'April', 'May',
          'June', 'July', 'August',
          'September', 'October', 'November']


def reset():
    label_result.grid_forget()


def calc():
    month = entry_month.get()
    day = entry_day.get()

    if (str(month) == months[3] and 21 <= int(day) <= 31) or \
            (str(month) == months[4] and 1 <= int(day) <= 20):
        label_result['text'] = 'Aries'
    elif (str(month) == months[4] and 21 <= int(day) <= 30) or \
            (str(month) == months[5] and 1 <= int(day) <= 20):
        label_result['text'] = 'Taurus'
    elif (str(month) == months[5] and 21 <= int(day) <= 31) or \
            (str(month) == months[6] and 1 <= int(day) <= 21):
        label_result['text'] = 'Gemini'

* Это незавершенные условия ^ *

root = Tk()
root.title('Zodiacs')
root.resizable(False, False)

label_month = Label(root, width=30, font=('Ubuntu', 15), text='Enter your birth month')
label_month.grid(row=0, column=0, sticky=E)

label_day = Label(root, width=30, font=('Ubuntu', 15), text='Enter your birth day')
label_day.grid(row=1, column=0, sticky=E)

label_zodiac = Label(root, width=30, font=('Ubuntu', 15), text='Your zodiac is ')
label_zodiac.grid(row=3, column=0)

label_result = Label(root, width=30, font=('Ubuntu', 15), text=' ')
label_result.grid(row=3, column=1)

calculate = Button(text='Calculate...', command=calc)
calculate.grid(row=2, column=1, sticky=S)

reset = Button(text='Reset', command=reset)
reset.grid(row=2, column=0)

entry_month = Entry(root)
entry_month.grid(row=0, column=1, columnspan=2)

entry_day = Entry(root)
entry_day.grid(row=1, column=1)

root.mainloop()

1 Ответ

2 голосов
/ 20 января 2020

Если вы забудете сетку, вам придется снова сетку. Так что просто замените текст на пустой для простого решения.

def reset():
    label_result['text']=""

или

def reset():
    label_result.configure(text="")
...