python - 按下 tkinter 时按钮禁用
问题描述
我正在制作一个采矿游戏,每当用户点击“我的”按钮时,我希望它禁用,这样用户就不能再次点击它,直到冷却结束。我做了一个代码示例,我先声明定义,然后制作按钮,但是由于按钮在后面,所以 def 不知道“我的”按钮是什么变量。任何帮助表示赞赏!
root = Tk()
def def1():
btn[state] = 'disabled'
Btn = Button(root, text="button", command= def1())
root.mainloop()```
解决方案
尝试这个:
import tkinter as tk
def enable_btn():
btn.config(state="normal")
def def1():
print("Clicked")
btn.config(state="disabled")
# 1000 is the cooldown in ms (so 1000 = 1 sec)
btn.after(1000, enable_btn)
root = tk.Tk()
btn = tk.Button(root, text="button", command=def1)
btn.pack()
root.mainloop()
我正在使用.after
脚本,因此该enable_btn
函数在调用后 1 秒运行def1
。
推荐阅读
- geometry - 在周长上通过 3 个点查找圆心 - 将 C# 代码转换为 G-CODE
- reactjs - Windows上https的Nginx配置问题
- python - AWS SageMaker 为什么要创建 S3 存储桶
- html - 使用 i18n 为文本的特定部分添加样式
- python - Python 检查模块查找所有函数
- node.js - Node Js child_process > exec:如何在Paent脚本中连续返回子脚本的stdout?
- android - 应用链接不适用于 Android 免安装应用
- mongodb - 可空对象的MongoDb嵌套索引
- javascript - 如何使用 ajax 将复杂数据类型发送到 ASP.NET MVC 中的控制器中的操作
- c# - 电子邮件发件人 C# 代码在 asp.net mvc Web 应用程序中不起作用