Python Simon游戏:我无法使按钮的命令按我需要的方式工作
我正在使用Tkinter开发Python中的Simon游戏,在使用按钮的命令时遇到问题 对于游戏来说,点击按钮时,按钮的activebackground必须从正常颜色变为另一种颜色,然后返回到正常颜色,我必须能够无限次地重复该操作 这方面的必要代码是:Python Simon游戏:我无法使按钮的命令按我需要的方式工作,python,tkinter,Python,Tkinter,我正在使用Tkinter开发Python中的Simon游戏,在使用按钮的命令时遇到问题 对于游戏来说,点击按钮时,按钮的activebackground必须从正常颜色变为另一种颜色,然后返回到正常颜色,我必须能够无限次地重复该操作 这方面的必要代码是: import Tkinter base = Tkinter.Tk() fr = Tkinter.Frame(base, bg="black", width="238", height="238") def yellowClick():
import Tkinter
base = Tkinter.Tk()
fr = Tkinter.Frame(base, bg="black", width="238", height="238")
def yellowClick():
yellow.configure(activebackground="yellow3")
yellow = Tkinter.Button(base, bd="0", highlightthickness="0",
width="7", height="5", activebackground="yellow",
bg="yellow3", command = yellowClick)
yellow.place(x = 30, y = 30)
fr.pack()
base.mainloop()
这里,yellowClick()函数中的实际代码使按钮的activebackground正确地将颜色更改为yellow3,但我不知道如何在3秒钟后将其返回为黄色,然后能够无限次地重复该操作
我用这种方式尝试了time.sleep():
def yellowClick():
yellow.configure(activebackground="yellow3")
time.sleep(3)
yellow.configure(activebackground="yellow")
但它只会使按钮变黄并持续3秒钟。等待3秒钟,然后返回黄色,而不是变黄3
欢迎任何帮助
import Tkinter
import time
base = Tkinter.Tk()
fr = Tkinter.Frame(base, bg="black", width="238", height="238")
def yellowClick():
yellow.configure(activebackground="yellow")
time.sleep(3)
yellow.configure(activebackground="yellow3")
yellow = Tkinter.Button(base, bd="0", highlightthickness="0",
width="7", height="5", activebackground="yellow",
bg="yellow3", command = yellowClick)
yellow.place(x = 30, y = 30)
fr.pack()
base.mainloop()
这对我有用。在你的机器上有什么结果
但我不知道如何在3秒后将其恢复为黄色
Tkinter小部件在之后有一个名为的方法,正是为了实现这类功能。如果要在三秒内将其更改为其他颜色,可以执行以下操作:
yellow.configure(activebackground="yellow3")
yellow.after(3000, lambda: yellow.configure(activebackground="yellow"))
这将创建一个匿名函数,该函数将在未来大约运行3秒(3000毫秒) 对我来说,这是颠倒的,因为它使颜色顺序在3秒内变为黄色,然后变为黄色3,它必须从黄色变为黄色3,然后变为黄色。我向下移动了3
2行:)如果你的意思是在两个黄色之间。配置,这就是我尝试的。那time.sleep(3)
将阻止您看到紧跟在它前面的配置的结果。所以它涵盖了第一次配置?