我有基于Tkinter的这样的python脚本:
#!/usr/bin/env python
#-*-coding:utf-8-*-
import ttk
from Tkinter import *
root = ttk.Tkinter.Tk()
root.geometry("%dx%d+0+0" % (1280, 800))
root.title(u'СКЗ Аналитик')
def pre(event):
print 'Something'
button3=Button(root,state = DISABLED,text='Test',width=10,height=1,fg='black',font='arial 8')
button3.place(x = 1200, y = 365)
button3.bind('<Button-1>', pre)
root.mainloop()
正如你所看到的那样,按钮被禁用但功能'pre'可以按下我禁用的按钮。视觉效果已禁用但是......任何人都可以帮助我吗?
答案 0 :(得分:1)
按钮的DISABLED
字段仅控制按钮的内置回调。如果你单独制作&#34;手工制作&#34;你自己绑定,按钮的状态不会影响它。
以下是如何使禁用功能按预期工作:
button3=Button(root, command = pre, state = DISABLED,text='Test',width=10,height=1,fg='black',font='arial 8')
# ^^^^^^^^^^^^^ use the built-in command field for the button.
button3.place(x = 1200, y = 365)
答案 1 :(得分:0)
您已禁用按钮,但它没有取消绑定该功能。您需要取消绑定与该按钮关联的功能。
您需要添加button3.unbind('<Button-1>')
这一行。
您可以像这样更新代码:
import ttk
from Tkinter import *
root = ttk.Tkinter.Tk()
root.geometry("%dx%d+0+0" % (1280, 800))
root.title(u'СКЗ Аналитик')
def pre(event):
print 'Something'
button3=Button(root,state = DISABLED,text='Test',width=10,height=1,fg='black',font='arial 8')
button3.place(x = 1200, y = 365)
button3.bind('<Button-1>', pre)
button3.unbind('<Button-1>') #updated line
root.mainloop()