2014-09-01 5 views
3

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

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

+0

Вы пробовали сигнал 'active()'? – RobbieE

ответ

4

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

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

+0

Спасибо! оно работает. –