Как удалить раздражающую границу по умолчанию в виджете меню Tkinter (Python 3)?

#python #tkinter

#python #tkinter

Вопрос:

Я пишу приложение в Tkinter, в котором у меня есть виджет меню. Я изменил цвет фона моего виджета меню, однако раздражающий цвет границы, похоже, не изменился. Я пытался использовать атрибут highlightthickness, но это не сработало. Для справки, вот код для моего виджета меню:

    menu = tkinter.Menubutton(title_bar, text = "⋮", width = 3, bd = 0, bg = "#E6B905", relief = "flat", pady = 4, activebackground = "#D1A804")
    menu.grid(row = 0, column = 3, padx = 0, sticky = "W")
    CreateToolTip(menu, "Other Options")
    accentItems.append(menu)

    menu.menu = tkinter.Menu(menu, tearoff = 0, bd = 0, relief = "solid", font = "Segoe_UI 9", bg = "#333333", activeborderwidth = 0, activebackground = "#404040", fg = "white", activeforeground = "white", selectcolor = "white")
    menu["menu"] = menu.menu

    menu.menu.add_command(label = "Choose theme:")
    menu.menu.add_radiobutton(label = "Blue", command = accentblue)
    menu.menu.add_radiobutton(label = "Yellow", command = accentyellow)
    menu.menu.add_radiobutton(label = "Green", command = accentgreen)
    menu.menu.add_radiobutton(label = "Pink", command = accentpink)
    menu.menu.add_separator()
    menu.menu.add_command(label = "Open Note", command = openFile)
    menu.menu.add_command(label = "Save Note As", command = saveNoteAs)
    menu.menu.add_command(label = "Save Note", command = saveNote)
    menu.menu.add_separator()
    menu.menu.add_command(label = "Undo", command = Undo)
    menu.menu.add_command(label = "Redo", command = Redo)
    menu.menu.add_command(label = "Quit", command = windowdestroy)
    menu.menu.add_command(label = "Help")
  

И вот скриншот результата:
Нажмите здесь, чтобы просмотреть скриншот

Это та раздражающая белая граница, которую я хочу удалить. Был бы очень признателен за любую помощь!

Комментарии:

1. Вы не можете удалить ее (в Windows). Я создал целую систему меню с нуля из-за этой точной проблемы. На самом деле это было не очень сложно. Я просто использовал измененный Listbox .

2. @MichaelGuidry Хорошо, спасибо за совет! Можете ли вы поделиться сутью того, что вы сделали с Listbox , или с кодом itsef?

3. Я подклассировал Listbox и отразил все Menu методы с пользовательской логикой. Например, в моем меню также есть add_command метод, который ожидает те же аргументы, но я написал всю логику для управления этими аргументами. Чтобы она отображалась (исчезла), было выполнено с помощью place и place_forget . Всего было около 400 строк кода, настолько крошечный и простой. Если подумать, все меню — это набор ярлыков, которые что-то делают, когда вы нажимаете на них.