Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: White Owl от Июль 11, 2012, 22:35



Название: Combobox with checkable tree?
Отправлено: White Owl от Июль 11, 2012, 22:35
Есть много предметов (код с описанием) собранных в несколько групп. Надо дать юзеру выбирать несколько кодов (по отдельности или группами).
Нарисовать их как дерево с checkbox'ами проблем никаких. Но постоянно держать на экране виджет с деревом - неудобно. Хочется сделать это в виде комбобокса. Чтобы в текстовом поле комбобокса писались кода через запятую, а при клике на стрелочку выпадало дерево в котором можно было бы отметить нужные строки (кода с описаниями) и они бы уже в виде списка кодов попадали в текстовую часть комбобокса.
Спрашивается, как это сделать?


Название: Re: Combobox with checkable tree?
Отправлено: Пантер от Июль 12, 2012, 09:13
http://doc-snapshot.qt-project.org/4.8/qcombobox.html#setView
Устанавливаешь свою вьюху и делаешь, что хочешь.


Название: Re: Combobox with checkable tree?
Отправлено: White Owl от Июль 12, 2012, 16:44
Это я пробовал. Не годится.
При использовании setView и собственной view события из вьюшки управляются самим комбобоксом. В смысле как только я кликаю где-то внутри отрисованой view она сразу закрывается...

Пока пошел по пути: отнаследовать от QComboBox, в нем перекрыть showPopup()/hidePopup() и тогда можно держать "выпашее дерево" на экране столько сколько нужно (в смысле пока мой комбобокс не потеряет фокус или не ткнут еще раз в его стрелочку).