提问者:小点点

如何更改tk.menu()对象的颜色?


所以我用tkinter和Python制作了这个文本编辑器。 它有一个带有文件下拉菜单的菜单栏。 这是一张屏幕截图。

我一直在努力改变它的颜色,但不管我怎么做都没用。

下面是一个代码片段:

class MenuBar:
def __init__(self, mainClass):
    fontSpecs = ("ubuntu", 9)

    menuBar = tk.Menu(mainClass.win, font=fontSpecs)
    mainClass.win.config(bg="#3C3F41", menu=menuBar)

    fileDropDown = tk.Menu(menuBar, font=fontSpecs, tearoff=0, fg="#AFB1B3", bg="#313335")
    fileDropDown.add_command(label="New File", command=mainClass.NewFile, accelerator="Ctrl+N")
    fileDropDown.add_command(label="Open File", command=mainClass.OpenFile, accelerator="Ctrl+O")
    fileDropDown.add_command(label="Save", command=mainClass.Save, accelerator="Ctrl+S")
    fileDropDown.add_command(label="Save As", command=mainClass.SaveAs, accelerator="Ctrl+Shift+S")
    fileDropDown.add_separator()
    fileDropDown.add_command(label="Exit", command=mainClass.Exit)

    menuBar.add_cascade(label="File", menu=fileDropDown)

下面是main类的init方法:

class TextEditor:
def __init__(self, win: tk.Tk):
    win.title(f"Untitled - {name}")
    win.geometry("1100x600")

    fontSpecs = ("ubuntu", 12)

    self.win = win
    self.fileName = None

    self.textArea = tk.Text(self.win, font=fontSpecs, insertbackground="#AFB1B3", fg="#AFB1B3", bg="#313335")
    self.scroll = tk.Scrollbar(self.win, command=self.textArea.yview())
    self.textArea.configure(yscrollcommand=self.scroll.set)
    self.textArea.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

    font = tk_font.Font(font=self.textArea["font"])
    tab = font.measure("    ")  # 4 empty spaces
    self.textArea.config(tabs=tab)

    self.scroll.pack(side=tk.RIGHT, fill=tk.Y)

    self.menuBar = MenuBar(self)

如果有人能帮忙那就太好了。 如果你需要更多的信息,请询问。 谢啦!


共1个答案

匿名用户

不能更改tk.menu对象的颜色。