Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改tkinter菜单栏的颜色_Python_Tkinter - Fatal编程技术网

Python 更改tkinter菜单栏的颜色

Python 更改tkinter菜单栏的颜色,python,tkinter,Python,Tkinter,我有下面的代码,我想做的是改变菜单栏的颜色,使其与我的窗口相同。我尝试了您在下面看到的内容,将bg=“#20232A”添加到menubar,但这似乎没有任何影响 我的问题:下图是窗口(尽管是窗口的一个片段),它显示了菜单栏和背景。我希望菜单栏的颜色与下面看到的背景相同,我如何才能做到这一点 无法在Windows或OSX上更改菜单栏的颜色。这在linux上的一些窗口管理器上是可能的,尽管我不确定 原因是菜单栏是使用tkinter不管理的本机小部件绘制的,因此您仅限于平台允许的范围 在Linux上

我有下面的代码,我想做的是改变菜单栏的颜色,使其与我的窗口相同。我尝试了您在下面看到的内容,将
bg=“#20232A”
添加到
menubar
,但这似乎没有任何影响

我的问题:下图是窗口(尽管是窗口的一个片段),它显示了菜单栏和背景。我希望菜单栏的颜色与下面看到的背景相同,我如何才能做到这一点


无法在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()

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

这是什么操作系统?它在windows上。Python 3.6.4是否有替代解决方案?类似于菜单栏但允许bg的东西?@Chris我想您可以编写自己的类来占据窗口的最顶部。@Chris:您不能简单地将菜单分配给根窗口,而是在顶部放置一个带有菜单按钮的框架。它的外观和行为都不像一个普通的菜单栏,尽管你可以接近它。这真的取决于你是想让某样东西的外观和功能标准化,还是外观和功能略有不同。谢谢,我最终决定坚持标准外观,我想这至少是一种熟悉的美学,并从其他黑暗主题中脱颖而出。
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()