我刚刚开始使用python tkinter,我无法获得一个按钮来更改datetime中的日期。到目前为止,我有按钮更改值变量b,c和d但它不会更改日期。谢谢你的帮助。
from tkinter import *
import datetime
window = Tk()
b = int(1999)
c = int(2)
d = int(2)
today = datetime.date.today()
def changeVariable():
global b, c, d
b = int(1914)
print("changed b")
c = int(7)
print("changed c")
d = int(28)
print("changed d")
def printVariable():
global a
print(a.days)
dog = datetime.date(b, c, d)
a = today - dog
button1 = Button(window, command = changeVariable)
button1.pack()
button2 = Button(window, command = printVariable)
button2.pack()
答案 0 :(得分:1)
您的函数changeVariable
会更改变量b
,c
和d
。在此之前计算它a
。 Python,以及大多数编程语言的工作方式,当你说x = y
时,除非特殊情况,否则不代表:
x始终等于y。 (通过引用传递)
而是:
将这个非常即时的值放到x(按值传递)
所以你应该放:
dog = datetime.date(b, c, d)
a = today - dog
在printVariable
中,以便a
的值也得到更新。
您的最终printVariable
应类似于:
def printVariable():
global a
dog = datetime.date(b, c, d)
a = today - dog
print(a.days)