Python tkinter设置标签文本来自功能

时间:2015-05-06 20:20:28

标签: python tkinter labels

我在tkinter窗口中有一个标签和一个以西班牙语输出当前日期的函数。我试图将标签文本设置为函数给出的日期,但它不起作用。

代码如下:

root = Tk()
root.title("Tarea Programada 2")
root.geometry("800x700+350+100")
fecha = Label(root, text=" ", font=('times',10), fg= 'black', bg= 'white', width = 30, height = 1)
fecha.place(x=551,y=100)

def horayfecha():
   dia = time.strftime("%A")
   fecha = time.strftime("%m")
   mes = time.strftime("%B")
      año = time.strftime("%Y")
   if dia == "Monday":
       dia = "Lunes"
   if dia == "Tuesday":
       dia = "Martes"
   if dia == "Wednesday":
       dia = "Miercoles"
   if dia == "Thursday":
       dia = "Jueves"
   if dia == "Friday":
       dia = "Viernes"
   if dia == "Satuday":
       dia = "Sabado"
   if dia == "Sunday":
       dia = "Domingo"
   if mes == "January":
       mes = "enero"
   if mes == "February":
       mes = "febrero"
   if mes == "March":
       mes = "marzo"
   if mes == "April":
       mes = "abril"
   if mes == "May":
       mes = "mayo"
   if mes == "June":
       mes = "junio"
   if mes == "July":
       mes = "julio"
   if mes == "August":
       mes = "agosto"
   if mes == "September":
       mes = "stiembre"
   if mes == "October":
       mes = "octubre"
   if mes == "November":
       mes = "noviembre"
   if mes == "December":
       mes = "diciembre"
   comp = ("San José, Costa Rica " + dia + " " + fecha + " de " + mes + " de " + año)
   fecha.setLabel("{}".format(comp))

root.mainloop()

任何人都可以帮我吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您的代码存在许多问题,包括缺少导入,缩进,样式,非唯一变量名称,混合哪些变量引用哪些对象,拼写错误(是的,那些计数,因为他们打扰用户几乎和崩溃一样多错误的小部件放置,奇怪的字符串格式化,无法调用已定义的函数,被抛弃而不是返回的函数结果,以及可能更多的我忘记了。

以下是正常运行的代码的清理版本:

from tkinter import *
import time

root = Tk()
root.title("Tarea Programada 2")
root.geometry("800x700+350+100")

fecha = Label(root, text=" ", font=('times',10), fg= 'black', bg= 'white', width = 50, height = 1)
fecha.place(x=350,y=100)

def horayfecha():
    día, fecha, mes, año = time.strftime("%A %m %B %Y").split()

    días = {'Monday':'Lunes', 'Tuesday':'Martes', 'Wednesday':'Miércoles',
            'Thursday':'Jueves', 'Friday':'Viernes', 'Saturday':'Sábado', 'Sunday':'Domingo'}

    meses = {'January':'Enero', 'February':'Febrero', 'March':'Marzo', 'April':'Abril', 'May':'Mayo',
             'June':'Junio', 'July':'Julio', 'August':'Agosto', 'September':'Setiembre', 'October':'Octubre',
             'November':'Noviembre', 'December':'Diciembre'}

    return ' '.join(["San José, Costa Rica", días.get(día), fecha, "de", meses.get(mes), "de", año])

fecha.config(text=horayfecha())
root.mainloop()