Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中单击按钮时更改变量的值_Python_Tkinter - Fatal编程技术网

在python中单击按钮时更改变量的值

在python中单击按钮时更改变量的值,python,tkinter,Python,Tkinter,所以我正在尝试制作一个自动的TictaToe GUI,一旦你移动,它就会播放你的动作。您看到的代码是非常外行的,因为实际代码非常长,并且通常是断章取义的。我希望代码本身能够工作,这样当单击按钮时,A1的值将变为1,它将检查值是否为1,以便可以打印“这是一个测试”,如果是的话 我已经尝试过环球,我不知道我是否做错了。有没有其他方法可以通过分配不同的变量来实现这一点 from tkinter import * root = Tk() A1 = 0 def btn_change(): glob

所以我正在尝试制作一个自动的TictaToe GUI,一旦你移动,它就会播放你的动作。您看到的代码是非常外行的,因为实际代码非常长,并且通常是断章取义的。我希望代码本身能够工作,这样当单击按钮时,A1的值将变为1,它将检查值是否为1,以便可以打印“这是一个测试”,如果是的话

我已经尝试过环球,我不知道我是否做错了。有没有其他方法可以通过分配不同的变量来实现这一点

from tkinter import *
root = Tk()
A1 = 0
def btn_change():
    global A1
    A1 += 1
Button1 = Button(root, text="    ", command=btn_change)
Button1.pack()
if A1 == 1:
    print("This is a test.")
root.mainloop()

当我运行代码时,窗口看起来很好,但当我按下屏幕上的按钮时,它不会显示“这是一个测试”。换句话说,它只是空白。

考虑以下代码:

if A1 == 1:
    print("This is a test.")
在主循环开始之前,它只运行一次。您永远不会到达A1达到1的点并打印结果

您需要随时检查变量A1,这可以通过创建另一个按钮来完成:

Button(root, text="get result",command=lambda: print("This is a test.") if A1==1 else "").pack()

你的描述有点不正确。它不会在mainloop的初始化期间运行。它在mainloop启动之前运行。这似乎是非常有用的建议,但如果我希望在单击按钮时更新变量,并进行条件检查以查看A1是否为1,该怎么办?在python中可能吗?我不想有一个单独的按钮,因为这只会给我的代码带来不便。感谢您在这么短的时间内给予的帮助!我不完全确定你的意思,但很明显,如果A1==1:print(“这是一个测试”)在你的
bt\u change
函数中,你可以移动