我正在使用Tkinter,python中的按钮。如何在单击按钮时禁用文本抖动?
事情是当我点击按钮的文本按钮时,一个按钮抖动。这可能是这个小部件的默认行为,我不知道如何禁用它并使其成为静态。
有谁知道如何解决这个问题?
我正在使用Tkinter,python中的按钮。如何在单击按钮时禁用文本抖动?
事情是当我点击按钮的文本按钮时,一个按钮抖动。这可能是这个小部件的默认行为,我不知道如何禁用它并使其成为静态。
有谁知道如何解决这个问题?
我认为你是指当你点击一个按钮时浮凸从凹陷变为凹陷。
这是我在http://wiki.tcl.tk/1048发现(点击“显示讨论”看到它):
不幸的是,当你点击使用浮雕硬编码(如 “沉没”),这样你就可以” t配置它每个部件,而不需要为按钮的绑定黑客Tk 内部。
所以解决这个问题的最简单的方法是,始终使按钮出现凹陷
MyButton = Tkinter.Button(
self.frame,
text = "Foobar",
command = self.foobar,
relief=Tkinter.SUNKEN
)
的是它的缺点是,它可能使按钮看起来反应迟钝。
您还可以使用除按钮之外的小部件作为可点击的项目(由Joel Cornett建议)。下面是一个用作按钮的标签的简单示例:
import Tkinter
class main:
def __init__(self,root):
# make a label with some space around the text
self.lbl1 = Tkinter.Label(root,
width = 16, height = 4,
text = "Foobar")
self.lbl1.pack()
# Call a function when lbl1 is clicked
# <Button-1> means a left mouse button click
self.lbl1.bind("<Button-1>", self.yadda)
self.lbl1.bind("<Enter>", self.green)
self.lbl1.bind("<Leave>", self.red)
def yadda(self, event):
self.lbl1.config(text="Clicked!")
def green(self, event):
self.lbl1.config(bg="green")
def red(self,event):
self.lbl1.config(bg="red")
if __name__ == "__main__":
root = Tkinter.Tk()
main(root)
root.mainloop()
也可以使用画布对象而不是按钮。 DIY一个点击/悬停动画并不难。 –
是的,没错。谢谢Junuxx。 是不是有办法解决这个问题,而不是让按钮总是出现凹陷? – jdscosta91
是的,你可以使用一个画布,就像Joel建议的那样。或者一个标签,只要文字就够了。我会在我的答案中加入一个例子。 – Junuxx
您能给出一个最小的代码示例吗? – Junuxx