Индикатор не исчезает, потому что в теме ttk нет опции indicatoron
, а style.configure()
просто игнорирует недопустимые параметры вместо сообщения об ошибке.
Однако вы, вероятно, можете избавиться от индикатора используя style.layout()
. Приведенное ниже решение не работает с темой по умолчанию в OSX, но работает для «clam» и «alt». Кажется, вы используете Windows, поэтому, возможно, он также будет работать для темы Windows, в противном случае вы можете изменить тему.
Если вы посмотрите на вывод style.layout('TMenubutton')
, у вас будет что-то вроде
[('Menubutton.border',
{'sticky': 'nswe',
'children': [('Menubutton.focus',
{'sticky': 'nswe',
'children': [('Menubutton.indicator', {'side': 'right', 'sticky': ''}),
('Menubutton.padding',
{'expand': '1',
'sticky': 'we',
'children': [('Menubutton.label',
{'side': 'left', 'sticky': ''})]})]})]})]
Чтобы избавиться от 'Menubutton.indicator', вы можете просто удалить его из макета:
style.layout('TMenubutton', [('Menubutton.border',
{'sticky': 'nswe',
'children': [('Menubutton.focus',
{'sticky': 'nswe',
'children': [
('Menubutton.padding',
{'expand': '1',
'sticky': 'we',
'children': [('Menubutton.label',
{'side': 'left', 'sticky': ''})]})]})]})])
Если вам нужны другие кнопки меню с индикатором, вы можете заменить ' TMenubutton 'с произвольным именем, например, noindicator.TMenubutton, и выполните btn_menu.configure(style='noindicator.TMenubutton')
, чтобы использовать этот макет для этого конкретного меню.