首页 > 解决方案 > 我怎样才能摆脱这个小的逻辑错误?

问题描述

我正在尝试创建一个小型 GUI 应用程序,用户和计算机都在依次单击按钮小部件。

首先,用户单击按钮,按钮文本发生变化,然后计算机单击按钮,机器的按钮上出现不同的文本

这是代码。

from tkinter import *

globals()['status'] = True

class test11(Tk):
    def __init__(self):
        super().__init__()
        self.geometry('200x200')

        self.btn_1 = Button(self,text="CLICK ME",command=lambda :self.test_function(1,2))
        self.btn_1.grid()

        if not (globals()['status']):
            self.machine()

    def test_function(self,aa,bb):
        self.btn_1['text'] = f'Dont CLICK ME {aa} {bb} HUMAN'
        globals()['status'] = False

    def machine(self):
        self.btn_1['text'] = f'Computer just clicked me'
        globals()['status'] = True

if __name__ == '__main__':
    a = test11()
    a.mainloop()

但问题是即使用户已经按下了按钮,机器也永远不会轮到。

当用户按下按钮时,全局变量的值会发生变化,这应该让机器函数调用不是吗?

标签: pythontkinter

解决方案


推荐阅读