Linux上的tkinter菜单样式

yquaqz18  于 2022-09-19  发布在  Linux
关注(0)|答案(2)|浏览(162)

在Linux上,我想更改菜单的背景颜色,并使浮雕变得平坦。我已经想好了怎么做,但当鼠标悬停在菜单上时,带有浮雕的旧背景颜色就会出现。

from tkinter import *
from tkinter.ttk import *

root = Tk()
bar = Menu(root, background='red', relief='flat')

menu = Menu(bar, background='red', relief='flat')
menu.add_command(label='Open')
menu.add_command(label='Save')
menu.add_command(label='Exit')

bar.add_cascade(label='File', menu=menu)

root.config(menu=bar)
root.mainloop()

当鼠标悬停在菜单上时,如何将背景更改为蓝色(没有浮雕)?

yzckvree

yzckvree1#

我认为您正在寻找activebackground选项。该选项控制鼠标悬停时的背景颜色。不过,我不确定会不会得到缓解。我看不出任何缓解选项之间的区别,但我猜这是因为我使用的是Windows。

zbdgwd5y

zbdgwd5y2#

我知道这比这个问题晚了很多年,但肯定有很多人想要一份平淡的救济菜单。

在Linux上,您可以像上面提到的@fhdrsdg那样更改背景颜色(activebackground='blue', background='white'将为所选项目提供白色菜单背景和蓝色背景)。

然后,您可以通过设置relief='flat'border=0(使菜单栏和每个下拉菜单的边缘平坦)和activeborderwidth=0(从所选菜单项中删除凸起的浮雕)来使浮雕变平。这在菜单栏和下拉菜单上都有效。

bar = Menu(root, background='white', 
           activebackground='lightblue', 
           border=0, relief='flat',
           activeborderwidth=0)

这不会删除向右指向层叠菜单选项的箭头上的浮雕,但会删除所有其他浮雕。

Linux上的默认Tk菜单

Linux上的平面浮雕和重新上色的Tk菜单

最后,一个稍微不那么难看的菜单,更符合ttkhemes‘微风’的主题。我希望我早在几年前就意识到了这一点。

相关问题