我有一个按钮可以执行一个函数(在tkinter中)。让我们假设它在游戏中增加了金钱。所以当你按下那个按钮,你会得到100美元。然而,我只希望我的用户能够每分钟增加100美元。有没有办法一分钟只允许调用一次函数?(也许是时间模块之类的?)在
我对管理职能部门的时间最了解的是,我想按照以下思路做些事情:
def add_money():
money = money + 100
app.after(5000, add_money)
我知道这个函数显然不能得到我想要的。有没有一种方法可以实现它,如果你点击按钮,一分钟都没有过去,程序将什么也不做?在
提前谢谢
你自己跟踪时间,如果时间过得太少,什么也不做。在
这样,可以根据用户的喜好随时调用该函数,但它每分钟只执行一次他想要的操作。在
在“添加货币”功能中,禁用“添加货币”按钮,然后计划在一分钟后重新启用:
如果你的应用有多种方式来增加金钱,比如菜单项、按钮和快捷键,那么创建一个函数来启用或禁用所有这些项,然后通过
after
调用该函数。在实际上,我很可能将其作为一个装饰器来实现,因为它听起来像是可重用的东西。下面的示例允许您在所需的任何函数上重用
guarded
,为使用装饰器的每个函数指定超时(以秒为单位):这里,
^{pr2}$add_money
只有在2秒超时后才允许:是的,有理由不使用全局dict来跟踪这些东西(在运行多线程时不好),而是使用
threading.local
,但这有点超出了这个答案的范围。在相关问题 更多 >
编程相关推荐