python 从单独按钮添加2个数字(tkinter)

x6yk4ghg  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(119)

我有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()
axr492tv

axr492tv1#

如果您仔细查看您的代码,就会发现有两个变量,名称分别为**'x''y',无论何时您按下按钮,它都会执行按钮,但是这些函数内部的变量被视为局部变量**,尽管您在函数外部定义了它们,这应该使它们成为全局变量。但在Python中,全局变量可以在函数内部访问,但不能修改。
因此在本例中,为了将'x'和'y'视为全局作用域,以便可以在函数内部修改或更改它们,从而将其反映在外部变量中,我们在函数内部使用global关键字,以便使它们的作用域为全局。
我稍微修改了一下你的代码。

from tkinter import *
import tkinter

window_main = Tk(className='Tkinter - TutorialKart', )
window_main.geometry("400x200")

i=0
x=0
y=0
o = 0
p = 0

def submitFunction() :
    global x
    x = 1
    print(x)
    if o == 1:
        x = 1

def a2():
    global y
    y = 2
    print(y)

    if p == 1:
        y = 2

def equ():
    i = x + y
    print(i)
    return (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()

如果你想了解更多关于在tkinter中调用函数而不带括号的内容,请点击link,这个人已经完美地解释了它。

阅读后,您可能会更清楚地了解您的问题。

相关问题