Как заменить метку в Python Tkinter?

Я программист новичков, и я делаю конвертер валют … Он все еще продолжается, но может ли кто-нибудь помочь мне попытаться заменить ярлык, сделанный в 'def convert ()? … Чтобы быть ясным, прямо сейчас каждый раз, когда я конвертирую, появляется новый ярлык, но я хочу, чтобы мой ярлык заменялся каждый раз, когда я нажимаю конвертировать …

import sys from Tkinter import * root = Tk() root.title("CURRENCY CONVERTER") root.geometry('600x300+30+100') root.config(bg="#000000") #*************************************GBP*************************************# def rate(): rate = 1 if var.get() =='GBP' and var2.get() =='USD': rate=float(1.63452) if var.get() =='GBP' and var2.get() =='EUR': rate=float(1.19529) if var.get() =='GBP' and var2.get() =='INR': rate=float(99.9639) if var.get() =='GBP' and var2.get() =='AUD': rate=float(1.79578) if var.get() =='GBP' and var2.get() =='CAD': rate=float(16.8796) if var.get() =='GBP' and var2.get() =='NZD': rate=float(1.97334) if var.get() =='GBP' and var2.get() =='JPY': rate=float(168.143) if var.get() =='GBP' and var2.get() =='CNY': rate=float(9.93698) #*************************************USD*************************************# if var.get() =='USD' and var2.get() =='GBP': rate=float() ##to do ....ADD MORE return rate #----------------------------------HELP------------------------------# def convert(): converted=Label(root, text=(var.get(), int(entarr.get()),">>>", round((float(entarr.get())*rate()),3), var2.get())) converted.config(font=('century gothic',(15)),bg='#000000',fg="white",width=0, relief=FLAT) converted.pack(expand = 1,anchor="center") return #--------------------------------HELP--------------------------------# #title Title=Label(root, text="Currency Converter", cursor="heart") Title.config(font=('century gothic',(35)),bg='#fff60b', fg="#9c0200",width=0,relief=RAISED) Title.pack(expand=1, anchor=CENTER) #entry box entarr = DoubleVar() entarr.set(0) entry = Entry(root, textvariable=entarr, cursor="plus") entry.config(font=('century gothic',(15)),bg='#ff6100',width=0, relief=SOLID) entry.pack(expand = 1, anchor="center") #currency 1 var = StringVar(root) var.set('Choose a currency to convert from') choices = ['GBP', 'USD', 'EUR','INR','AUD','CAD','NZD','JPY','CNY'] option = OptionMenu(root, var, *choices) option.config(font=('century gothic',(15)),bg='#fff60b',fg="#9c0200",activebackground='#00ff80',width=0, cursor="", relief=FLAT) option.pack(ipadx=10,ipady=0, expand=1,anchor="center") #convert button Arrow= Button(root, text=">>>>CONVERT>>>>", command = convert, cursor="exchange") Arrow.config(font=('century gothic',(15)),width=0, bg="#ff6100", relief=SOLID) Arrow.pack(ipadx=1,ipady=0, expand =1, anchor="center") #currency 2 var2 = StringVar(root) var2.set('Choose a currency to convert to') choices2 = ['GBP', 'USD', 'EUR','INR','AUD','CAD','NZD','JPY','CNY'] option2 = OptionMenu(root, var2, *choices2) option2.config(font=('century gothic',(15)),bg='#fff60b',fg="#9c0200",activebackground='#00ff80',width=0, relief=FLAT) option2.pack(ipadx=10,ipady=0, expand=1,anchor="center") root.mainloop() 

РЕДАКТИРОВАТЬ:

СОКРАЩЕННО ПОЖАЛУЙСТА ПОМОГИТЕ МЕНЯ. Я понятия не имею, супер нуб здесь!

 def convert(): newValue=(var.get(), int(entarr.get()),">>>", round((float(entarr.get())*rate()),3), var2.get()) converted=Label(root, textvariable=newValue) converted.config(font=('century gothic',(15)),bg='#000000',fg="white",width=0, relief=FLAT) converted.config(text=newValue) converted.pack(expand = 1,anchor="center") return 

One Solution collect form web for “Как заменить метку в Python Tkinter?”

Есть несколько простых способов сделать это. В обоих случаях он включает создание метки один раз , а затем динамическое изменение отображаемого текста.

Метод 1: используйте текстовую переменную

Если вы связываете StringVar с меткой, всякий раз, когда вы меняете значение StringVar, метка будет автоматически обновляться:

 labelVar = StringVar() label = Label(..., textvariable=labelVar) ... # label is automatically updated by this statement: labelVar.set(newValue) 

Способ 2: обновить текст с configure метода configure :

 label = Label(...) ... # update the label with the configure method: label.configure(text=newValue) 

В обоих случаях вам нужно убедиться, что объект, который вы изменяете (либо виджет, либо StringVar), является либо глобальной переменной, либо переменной экземпляра, чтобы вы могли получить к ней доступ позже в своем коде.

Python - лучший язык программирования в мире.