繁体   English   中英

更改 tkinter 菜单栏的颜色

[英]Changing the colour of tkinter menubar

我有以下代码,我想做的是将菜单栏的颜色更改为与我的 window 相同。我已经尝试了您在下面看到的内容,将bg="#20232A"添加到menubar ,但这似乎没有影响。。

我的问题:下图是 window(虽然是窗口的一个片段),它展示了菜单栏和背景。 我希望菜单栏与下面看到的背景颜色相同,我该如何实现?

在此处输入图像描述

from tkinter import *

config = {"title":"Editor", "version":"[Version: 0.1]"}

window = Tk()
window.title(config["title"] + " " +config["version"])
window.config(bg="#20232A")
window.state('zoomed')

def Start():
    menubar = Menu(window, borderwidth=0, bg="#20232A") # Tried adding background to this, but it doesent work

    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="Open")
    filemenu.add_command(label="Save")
    menubar.add_cascade(label="File", menu=filemenu)
    window.config(menu=menubar)

Start()
window.mainloop()

您不能在 Windows 或 OSX 上更改菜单栏的颜色。 尽管我不确定,但在 linux 上的某些窗口管理器上可能是可能的。

原因是菜单栏是使用不受 tkinter 管理的本机小部件绘制的,因此您仅限于平台允许的内容。

在 Linux 上是可能的:

def main():

    root =Tk()
    menubar = Menu(root, background='lightblue', foreground='black',
               activebackground='#004c99', activeforeground='white')  
    file = Menu(menubar, tearoff=1, background='lightblue', foreground='black')  
    file.add_command(label="Receive")  
    file.add_command(label="Issue")  
    file.add_command(label="Track")  
    file.add_command(label="Search")  
    file.add_command(label="Allocate")  
    
    file.add_separator()  
    
    file.add_command(label="Exit", command=root.quit)  
    
    menubar.add_cascade(label="Goods", menu=file)  
    edit = Menu(menubar, tearoff=0)  
    edit.add_command(label="Undo")  
    
    edit.add_separator()  
    
    edit.add_command(label="Cut")  
    edit.add_command(label="Copy")  
    edit.add_command(label="Paste")  
    edit.add_command(label="Delete")  
    edit.add_command(label="Select All")  
    
    menubar.add_cascade(label="Accounts", menu=edit)  
    help = Menu(menubar, tearoff=0)  
    help.add_command(label="About")  
    menubar.add_cascade(label="Help", menu=help)  
    
    root.config(menu=menubar)  
    ex = MainWin()
    root.geometry("2000x1391")
    root.mainloop()


if __name__ == '__main__':
    main()

只需添加前景和背景属性。

继续 Brian Oakley 的回应。 Linux 上的菜单栏(至少在我的 Linux Mint 安装上)呈现所需的颜色。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM