Как добавить невыбираемый разделитель в выпадающий список в SWT - PullRequest
7 голосов
/ 17 марта 2011

В нашем поле со списком должны отображаться имена шрифтов фиксированной и нефиксированной ширины. Я хочу добавить неразборчивый разделитель между ними:

-- Fixed-width fonts --
Courier New
Lucida Console
...
-- Non-fixed-width fonts --
Arial
...

Возможно ли это с SWT?

1 Ответ

0 голосов
/ 19 июля 2015

Короткий ответ - нет. Ни Combo, ни CCombo не позволяют помечать элементы как невыбираемые.

Но должна быть возможность реализовать собственный комбинированный виджет, который может отображать невыбираемые элементы с разумными усилиями.

Если вы посмотрите на CCombo код , вы увидите, что это не собственный виджет, а состоит из других виджетов SWT. Он использует List в качестве раскрывающегося элемента управления для отображения элементов.

Если вы используете ScrolledCompposite для раскрывающегося виджета, вы можете поместить Label s для представления элементов. Невыбираемые предметы не потребуют дополнительной работы. Для выбираемых элементов вы можете использовать слушатели мыши для Label s, чтобы выделить их при наведении курсора и обработать выделение.

Если вы планируете показывать большое количество элементов (что в любом случае не следует указывать в поле со списком), количество созданных ярлыков может повлиять на производительность.

В качестве альтернативы вы можете попробовать Таблица туманностей Комбо . Возможно, таблицу можно настроить так, чтобы некоторые элементы отображались как невыбираемые (с использованием элементов, нарисованных пользователем), и поведение выбора для них можно было отключить.

...