首页 > 解决方案 > 按下 tkinter 时按钮禁用

问题描述

我正在制作一个采矿游戏,每当用户点击“我的”按钮时,我希望它禁用,这样用户就不能再次点击它,直到冷却结束。我做了一个代码示例,我先声明定义,然后制作按钮,但是由于按钮在后面,所以 def 不知道“我的”按钮是什么变量。任何帮助表示赞赏!



root = Tk()


def def1():
    btn[state] = 'disabled'

Btn = Button(root, text="button", command= def1())



root.mainloop()```

标签: pythontkinteratom-editor

解决方案


尝试这个:

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


推荐阅读