Название: [РЕШЕНО] QComboBox: не закрывать выпадающий список после клика Отправлено: sergs от Апрель 05, 2017, 19:18 Реализовал класс-наследник QComboBox, который позволяет выбирать несколько элементов. Для этого создал свою модель и выполняю отрисовку элементов при помощи QStyledItemDelegate (т.к. иначе в некоторых окружениях флажки не отображаются). Осталась одна проблема: выпадающий список закрывается сразу же после щелчка на каком-то элементе. Мне же нужно, чтобы список закрывался только тогда, когда курсор покинет область выдпадающего списка или пользователь щелкнет за его пределами.
Пробовал переопределить hidePopup() Код: void MyCombo::hidePopup() Но в Qt 5.5 такой вариант не работает. Попытался сделать через eventFilter() (обработка правой клавиши мыши нужна для других целей) Код: bool MyCombo::eventFilter(QObject *object, QEvent *event) но так игнорируются все клики и нельзя снять/установить флажок. Может, подскажете как реализовать нужное поведение? Название: Re: QComboBox: не закрывать выпадающий список после клика Отправлено: GraninDm от Апрель 06, 2017, 10:12 Вообще в гугле дофига всякого разного по этому поводу
первая ссылка http://stackoverflow.com/questions/17786036/how-to-show-rich-text-in-the-qcombobox-lineedit-or-how-to-replace-the-lineedi (http://stackoverflow.com/questions/17786036/how-to-show-rich-text-in-the-qcombobox-lineedit-or-how-to-replace-the-lineedi) Правда там код на python, но вдруг поможет. Название: Re: QComboBox: не закрывать выпадающий список после клика Отправлено: sergs от Апрель 06, 2017, 15:01 Вообще в гугле дофига всякого разного по этому поводу первая ссылка http://stackoverflow.com/questions/17786036/how-to-show-rich-text-in-the-qcombobox-lineedit-or-how-to-replace-the-lineedi (http://stackoverflow.com/questions/17786036/how-to-show-rich-text-in-the-qcombobox-lineedit-or-how-to-replace-the-lineedi) Правда там код на python, но вдруг поможет. Видимо, не так искал, т.к. ваша ссылка мне не попадалась. Попробовал взять оттуда фрагмент фильтра Код: bool MyCombo::eventFilter(QObject *object, QEvent *event) увы, не работает. Выпадающий список все равно закрывается после первого клика. Название: Re: QComboBox: не закрывать выпадающий список после клика Отправлено: ssoft от Апрель 06, 2017, 18:07 Так должно работать
Код
Название: Re: QComboBox: не закрывать выпадающий список после клика Отправлено: sergs от Апрель 07, 2017, 10:07 |