Как изменить цвет активного фона выпадающего меню (например, tk.Listbox) в ttk.Combobox - PullRequest
0 голосов
/ 22 сентября 2018

Следующий код создает виджет ttk.Combobox:

import tkinter.ttk as ttk
default_values = ['Peter','Scotty','Walter','Scott','Mary','Sarah','Jane',
                  'Oscar','Walley','Faith','Bill','Egor','Heley']
s=ttk.Style()
s.configure( 'TCombobox', font=('Purisa', 20, 'bold'), background ='cyan',
             fieldbackground='pink')
c=ttk.Combobox(values=default_values)
c.master.option_add( '*TCombobox*Listbox.background', 'yellow')
c.master.option_add( '*TCombobox*Listbox.selectbackground','red') #does not work
c.master.option_add( '*TCombobox*Listbox.selectforeground','grey') #does not work  
c.master.option_add( '*TCombobox*Listbox.highlightbackground','blue') # does not work
c.master.option_add( '*TCombobox*Listbox.highlightforeground','green') #does not work
c.master.option_add( '*TCombobox*Listbox.activestyle', 'underline') #does not work
c.grid()

После нажатия кнопки со списком Combobox появится выпадающее меню (которое является виджетом tk.Listbox), содержащее default values.Когда мышь находится над выпадающим меню, под указателем мыши появляется активный фон. Я бы хотел изменить цвет этого серого активного фона.Как это сделать?

Поскольку раскрывающееся меню не является виджетом ttk , оно не будет реагировать на настройки ttk.Style().Я также пробовал метод .option_add, но можно изменить только фон списка.

Проблема: active background in dropdown menu

1 Ответ

0 голосов
/ 23 сентября 2018

Вы пытаетесь использовать правильную опцию для изменения цвета фона:

c.master.option_add( '*TCombobox*Listbox.selectbackground','red')

Но вы допустили небольшую ошибку, т.е. selectbackgroundselectbackground первая буква background должна быть заглавной.
*TCombobox*Listbox.selectbackground становится *TCombobox*Listbox.selectBackground
-----------------------__^__-----------------------------------------__^__-------

Попробуйте:

c.master.option_add( '*TCombobox*Listbox.selectBackground','red')

Аналогичноforeground становится Foreground.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...