Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
391 views
in Technique[技术] by (71.8m points)

Disable button in Tkinter (Python)

enter image description here

Hi , I have some question to ask

I just want to disable the button when i start my program

in attached image, it looks like the button is already disabled ,but its response to my click event or keyboard event

What should i do ?

Thank you for all answer

from Tkinter import *


def printSomething(event):
    print("Print")

#Start GUI
gui = Tk()
gui.geometry("800x500")
gui.title("Button Test")

mButton = Button(text="[a] Print",fg="#000",state="disabled")

mButton.place(x=5,y=10)

mButton.bind('<Button-1>',printSomething)
gui.bind('a',printSomething)

gui.mainloop()
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to unbind the event. state="disabled"/state=DISABLED makes button disabled but it doesn't unbind the event. You need to unbind the corresponding events to achieve this goal. If you want to enable the button again then you need to bind the event again. Like:

from Tkinter import *

def printSomething(event):
    print("Print")

#Start GUI
gui = Tk()
gui.geometry("800x500")
gui.title("Button Test")

mButton = Button(text="[a] Print",fg="#000",state="disabled")

mButton.place(x=5,y=10)

mButton.bind('<Button-1>',printSomething)
mButton.unbind("<Button-1>") #new line added
gui.bind('a',printSomething)

gui.mainloop()

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...