Как закрыть редактор QComboBox в делегате, когда пользователь выбирает элемент

У меня есть QStyledDelegate, который создает редактор QComboBox в методе createEditor(). Редактор закрывается только тогда, когда пользователь выбирает элемент в списке и нажимает клавишу Enter. Я хочу, чтобы редактор закрывался только тогда, когда пользователь выбирает элемент. Как это сделать?

Я пытался использовать сигнал QComboBox currentIndexChanged(), но он испускается, даже когда пользователь просто щелкает ячейку таблицы, чтобы просмотреть редактор.


person Alexander_KH    schedule 01.09.2014    source источник
comment
Вы пробовали сигнал activated()?   -  person RobbieE    schedule 01.09.2014


Ответы (1)


Вам нужно подключить сигнал QComboBox::currentIndexChanged к слоту вашего делегата. Внутри слота вы должны излучать сигнал closeEditor.

Первоначальная эмиссия сигнала currentIndexChanged, скорее всего, вызвана тем, что вы установили текущий индекс после создания. Просто поместите оператор подключения ниже значения настройки поля со списком.

person Pavel Strakhov    schedule 01.09.2014