我有3个按钮,我想让它,所以当你按下一个按钮,它设置变量的值。按第一个按钮设置x为1第二个设置y为2按第三个添加x和y一起应该返回3,但它返回0。
我试着创建第四个值,当它被设置为1时,它会将两者相加。我和一个朋友试着在开始时创建x和y,整数int(x)= x
这是密码
import tkinter
window_main = tkinter.Tk(className='Tkinter - TutorialKart', )
window_main.geometry("400x200")
i=0
x=0
y=0
o = 0
p = 0
x = int(x)
y = int(y)
o = int(o)
p = int(p)
i=int(i)
def submitFunction() :
x = 1
print(x)
if o == 1:
x = 1
def a2():
y = 2
print(y)
if p == 1:
y = 2
def equ():
i = int(x + y)
return(i)
print(i)
button_submit = tkinter.Button(window_main, text ="set x to 1", command=submitFunction).grid(column = 1, row = 1)
button = tkinter.Button(window_main, text ="set y to 2", command=a2).grid(column = 2, row = 1)
button = tkinter.Button(window_main, text = "solve", command = equ). grid(column = 3, row = 1)
window_main.mainloop()
1条答案
按热度按时间axr492tv1#
如果您仔细查看您的代码,就会发现有两个变量,名称分别为**'x'和'y',无论何时您按下按钮,它都会执行按钮,但是这些函数内部的变量被视为局部变量**,尽管您在函数外部定义了它们,这应该使它们成为全局变量。但在Python中,全局变量可以在函数内部访问,但不能修改。
因此在本例中,为了将'x'和'y'视为全局作用域,以便可以在函数内部修改或更改它们,从而将其反映在外部变量中,我们在函数内部使用global关键字,以便使它们的作用域为全局。
我稍微修改了一下你的代码。
如果你想了解更多关于在tkinter中调用函数而不带括号的内容,请点击link,这个人已经完美地解释了它。
阅读后,您可能会更清楚地了解您的问题。