根据这篇文章中接受的答案,按钮上的使用.configure(highlightbackground='red')应该在按钮周围应用颜色,但是在测试中我无法重现海报在他们的 gif 录制中展示的内容。
这是我的测试用例:(注意即使复制粘贴海报代码我也无法获得它们显示的突出显示效果)
import tkinter as tk
root = tk.Tk()
btn = tk.Button(root, text='test', bg="#000000", fg="#ffffff", highlightthickness=4, activebackground="#ffffff",
activeforeground="#000000", highlightbackground='red', highlightcolor='red')
btn.pack()
btn.focus_set()
root.mainloop()
结果应用程序:
在此处输入图像描述
通过一些广泛的搜索,我在highlightbackground关于同一问题的 Q/A 方式中没有找到太多信息,因此可能缺少某些内容。我还尝试设置焦点,因为本文档指出小部件需要焦点,但结果相同。
也许它可能与版本或操作系统相关......
操作系统 - Windows 10 专业版
蟒蛇 - 3.6.2
使用 Krrr 的帖子更新了示例。所以这确实有点工作,但是这里的问题是它正在调整按钮的大小并且没有提供正确的突出显示颜色。
import tkinter as tk
def ResponsiveWidget(widget, *args, **kwargs):
bindings = {
'<FocusIn>': {'highlightbackground': 'red', 'highlightcolor':'red'},
'<FocusOut>': {'highlightbackground': '#d9d9d9', 'highlightcolor':'SystemButtonFace'},
'<Enter>': {'state': 'active'},
'<Leave>': {'state': 'normal'}
}
for k, v in bindings.items():
root.bind_class('Button', k, lambda e, kwarg=v: e.widget.config(**kwarg))
def update_active(event):
global previous_button
if previous_button != event.widget:
previous_button.config(default='normal')
event.widget.config(default='active')
previous_button = event.widget
root = tk.Tk()
button_list = []
previous_button = None
for i in range(5):
if i == 0:
button_list.append(tk.Button(root, text='test', bg="#000000", fg="#ffffff", highlightthickness=5,
activebackground="#ffffff", activeforeground="#000000", default='active'))
previous_button = button_list[-1]
else:
button_list.append(tk.Button(root, text='test', bg="#000000", fg="#ffffff", highlightthickness=5,
activebackground="#ffffff", activeforeground="#000000", default='normal'))
button_list[-1].pack(padx=5, pady=5)
button_list[-1].bind('<ButtonRelease-1>', update_active)
root.mainloop()
米琪卡哇伊
明月笑刀无情
相关分类