我正在使用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