我正在研究一个基于tkinter的简单GUI程序,该程序会打印“ DONE”(完成) 当单击按钮时,问题是当我一次又一次单击按钮时,它的打印内容“一次完成”一次又一次,因此我想将其限制为一次。.
from tkinter import *
def b1_action():
Label_1 = Label(text = "DONE")
Label_1.pack()
top = Tk()
top.geometry("500x500")
b1 = Button(text = "CLICK ME",command = b1_action)`enter code here`
b1.pack()
top.mainloop()
我希望“完成”仅打印一次,但是当我按下“点击我”按钮时,它会一次又一次地打印。
答案 0 :(得分:0)
您要查找的代码行是
b1.configure(state=DISABLED)
鉴于您在b1声明中将命令声明为b1_action,该函数应如下所示。
def b1_action():
Label_1 = Label(text = "DONE")
Label_1.pack()
b1.configure(state=DISABLED)
答案 1 :(得分:0)
您有两种方法可以做到这一点。
第一个选择是单击按钮后立即禁用按钮,
from tkinter import *
def b1_action():
Label_1 = Label(text="DONE")
Label_1.pack()
b1.configure(state=DISABLED)
top = Tk()
top.geometry("500x500")
b1 = Button(text="CLICK ME", command=b1_action)
b1.pack()
top.mainloop()
第二个选项是您创建一个变量,以检查按钮是否被按下
from tkinter import *
BUTTON_PRESSED = False
def b1_action():
global BUTTON_PRESSED
if not BUTTON_PRESSED:
Label_1 = Label(text="DONE")
Label_1.pack()
BUTTON_PRESSED = True
top = Tk()
top.geometry("500x500")
b1 = Button(text="CLICK ME", command=b1_action)
b1.pack()
top.mainloop()
但是我建议使用第一个选项,它更简单,更有效