Python - как убрать границу вокруг выбранного элемента ListBox? - PullRequest
0 голосов
/ 19 сентября 2018

Это небольшая проблема, но я боролся с ней большую часть дня и ничего не получилось, так что здесь.Я собираюсь написать скрипт на Python, который потребует использования ScrolledListBox ().Никогда прежде не использовав его, я начал с экспериментального сценария, где я мог бы поиграть с ним и ознакомиться с ним.Теперь у меня есть сценарий, в котором я могу дважды щелкнуть элемент и в обработчике правильно распечатать выбранный элемент в стандартный вывод.Однако я заметил, что при выборе элемента одним или двумя щелчками прямоугольная рамка появляется вокруг элемента в списке и остается там до тех пор, пока не будет выбран другой элемент.Я пытался понять, есть ли способ избавиться от этой границы, но до сих пор не смог этого сделать.Вот что я попробовал:

1) Благодаря другому сообщению на этом форуме я обнаружил, что метод keys () даст мне список доступных опций для виджета.Итак, имея ScrolledListBox с именем slb1, я мог сделать что-то вроде print (slb1.keys ()) и получил полный список всего, что я мог настроить в виджете.Одним из них был «selectborderwidth», поэтому я сделал: slb1.configure (selectborderwidth = 0), думая, что это уберет границу.Это не так.

2) Затем я перебрал свою копию «Python and Tkinter» и обнаружил метод selection_clear (first, last = None).Описание гласит: «Если какие-либо элементы между первым и последним (включительно) выбраны, они отменяются».Поэтому я попытался: slb1.selection_clear (0, None) в обработчике, но еще раз прямоугольная рамка вокруг элемента осталась.

Я только начинаю работать в Python и Tkinter, так что, надеюсь, что-то кто-то пропустилс большим опытом знает о.Любые идеи о том, как избавиться от границы?

Спасибо, Дейв

1 Ответ

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

В документации New Mexico Tech , которая может быть хорошим справочным материалом при работе с Tkinter, перечислены атрибуты для виджета Listbox, среди которых activestyle.Этот параметр относится к рамке вокруг текущего активного (не обязательно выбранного) элемента и может принимать значения underline, dotbox и none.

Если вы установите activestyle в none пунктирная граница исчезнет.

...