单击python时的Tkinter浮雕按钮

时间:2014-05-28 00:34:55

标签: python button tkinter

所以,在Tkinter Buttons中似乎有一个浮雕属性。这是默认提升,当按下按钮时,它会变为凹陷。我使用了救济= FLAT,但是当我点击这个按钮时它仍然是凹陷的。有没有办法让它在点击时有不同的缓解?它会涉及改变边框颜色吗?

Button(text=day, width=2,
       relief=FLAT, activebackground = self.color_clicked,
       background = self.today_color)

这看起来很平坦,但是当我点击它时它会变成凹陷(但是当我放开时它显然会变回扁平状态。)

3 个答案:

答案 0 :(得分:2)

您可以将鼠标单击绑定到一个强制按钮释放的功能,使其保持平整,否则鼠标单击将在点击时使用其默认操作:使按钮凹陷。

def keep_flat(event):       # on click,
    if event.widget is btn: # if the click came from the button
        event.widget.config(relief=FLAT) # enforce an option

def callback():
    print('button clicked')

root = Tk()

btn = Button(root, text='click', relief=FLAT, command=callback)
btn.pack()

root.bind('<Button-1>', keep_flat) # bind the application to left mouse click

mainloop()

另一种选择是将按钮单击绑定到字符串&#34; break&#34;,这可以防止任何典型的事件处理程序开始(包括按钮的command选项):< / p>

btn.bind('<Button-1>', lambda e: 'break')

http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

答案 1 :(得分:2)

-borderwidth (-bd)设为0对我有用。按钮文本一直向下移动,显示按钮被按下,但是没有出现凹陷边框。

答案 2 :(得分:0)

绑定鼠标单击功能不是正确的解决方案,因为配置代码在显示按钮释放后执行。布莱恩建议使用标签似乎是实现这一目标的唯一方法。