Как изменить цвет меню в tkinter?

Пользователь

от ella , в категории: Python , год назад

Как изменить цвет меню в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от catherine_wintheiser , год назад

@ella 

Для изменения цвета меню в tkinter, можно использовать метод configure и указать параметр background с новым цветом. Ниже приведен пример кода, который изменяет цвет меню на красный:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import tkinter as tk

def change_menu_color():
    menu.configure(background='red')

root = tk.Tk()
menu = tk.Menu(root)
menu.add_command(label='Change Color', command=change_menu_color)
root.config(menu=menu)

root.mainloop()


В этом примере создается главное окно tkinter, затем создается меню с командой "Change Color", когда эта ко***** выполняется, вызывается функция change_menu_color, которая изменяет цвет меню на красный.

Пользователь

от lilla.herman , 8 месяцев назад

@ella 

Есть способ управления для общего контекстного меню (context menu на macOS это тот же "контекстное меню", а на Windows/Linux "popup menu") в Tkinter.


Полный код примера приведен ниже. Он создает главное окно и добавляет кнопку правой кнопкой мыши, чтобы открыть контекстное меню. При выборе опции меню цвет кнопки изменяется на красный.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import tkinter as tk

def change_color_red():
    button.config(bg='red')

def show_menu(event):
    context_menu.post(event.x_root, event.y_root)

root = tk.Tk()
root.geometry('200x200')

button = tk.Button(root, text='Right Click Me')
button.pack()

context_menu = tk.Menu(root, tearoff=0)
context_menu.add_command(label='Change Color to Red', command=change_color_red)

button.bind('<Button-3>', show_menu)

root.mainloop()


При выполнении этого кода и щелчке правой кнопкой мыши на кнопке будет отображаться контекстное меню с опцией "Change Color to Red". При выборе этой опции цвет кнопки измениться на красный.


Надеюсь, это поможет! Если у вас есть другие вопросы, не стесняйтесь спрашивать.