You can customize the way OptionMenus look, but probably not to the whole degree that you want. I know you can change the background color and the text, but the button on the right is platform dependent and should only change with changes made to your OS. (Though, I am not 100% on that so if anyone knows better, feel free to correct me.)
Here is a list of all the keys you can configure for OptionMenus:
- activebackground
- activeforeground
- anchor
- background
- bd
- bg
- bitmap
- borderwidth
- cursor
- direction
- disabledforeground
- fg
- font
- foreground
- height
- highlightbackground
- highlightcolor
- highlightthickness
- image
- indicatoron
- justify
- menu
- padx
- pady
- relief
- compound
- state
- takefocus
- text
- textvariable
- underline
- width
- wraplength
You can clearly change the colors of the background and the text (foreground), but you will probably also want to to change the 'active' and 'disabled' version of them as well.
You can make these changes by listing the keywords after you create the widget by using .configure()
In example:
a = OptionMenu(root, var, *items)
a.configure(activebackground='yellow')
If you set indicatoron
to 0, it will remove that button for you which may work for you.
You may also want to consider using a Combobox instead. (tkinter.ttk.Combobox) They usually blend in with their surroundings a little better and offer similar functionality, but they are less flexible on how you can customize their look.