Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Flass от Май 08, 2013, 07:22



Название: QComboBox, настройка popup'а и фильтрующая модель как альтернатива QCompleter
Отправлено: Flass от Май 08, 2013, 07:22
Все началось с того что меня не радовал стандартный комплитер, так как он не умеет искать не с начала слова, не умеет отлавливать по нескольким вхождениям в строку, и наконец, если я не ошибаюсь, не может отобразить в popup'е QTreeView. Поэтому принял решение использовать редактируемый комбик, положить в него фильтрующую модель, научить ее всяким разным штукам, и в слот её передавать текст из комбика по сигналу редактирования. В этой части все получилось. Проблемы в другом - мне не удается настроить поведение popup'а корректным образом.

1. Фокус при вываливании попапа переходит на него и я не могу вводить в комбик дальнейшие значения.

2. Когда попап вываливается, то он закрывает собой редактируемый комбик (по крайней мере в linux).
С последней проблемой я справился, унаследовався от комбика и переопределив метод showPopup, но может быть есть решение получше? (Если вы имеете в виду применение соответствующего стиля, то приведите пример как его можно накатить на этот комбик, учитывая что сам он является делегатом для таблички)

upd0: Да, и оказыватеся мой способ решения второй проблемы не совсем хорошо работает, так что этот костыль не считается )
upd1: Вторая проблема решается очень просто:
Код:
QString styleSheet =  "QComboBox { combobox-popup: 0 }";
myComboBox->setStyleSheet(styleSheet);


Название: Re: QComboBox, настройка popup'а и фильтрующая модель как альтернатива QCompleter
Отправлено: xokc от Май 08, 2013, 08:44
Пытался тоже в своё время сделать что-то похожее, но под Windows - получил те же проблемы с фокусом, долго ковырялся, но так на пол пути и бросил.


Название: Re: QComboBox, настройка popup'а и фильтрующая модель как альтернатива QCompleter
Отправлено: Flass от Май 08, 2013, 09:08
Возможно вы нашли альтернативное решение? Хм.. осмелюсь даже попросить исходник, если есть) Я уже думаю написать отдельный компонент из комбинации QLineEdit и всплывающего при редактировании lineEdita виджета, в котором будет лежать вьюха.. но, слабо понимаю что там нужно будет сделать в деталях, и все еще надеюсь найти менее геморройный способ. ;)


Название: Re: QComboBox, настройка popup'а и фильтрующая модель как альтернатива QCompleter
Отправлено: Flass от Май 14, 2013, 07:31
Ну что, товарищи бойцы, никто не одолел окаянного комбика, своевольного и глупого?


Название: Re: QComboBox, настройка popup'а и фильтрующая модель как альтернатива QCompleter
Отправлено: xokc от Май 14, 2013, 19:49
Возможно вы нашли альтернативное решение? Хм.. осмелюсь даже попросить исходник, если есть)
Нашёл - отложить до "лучших времен", а пока смириться с обычным QComboBox. Дело было довольно давно - код уже утрачен.


Название: Re: QComboBox, настройка popup'а и фильтрующая модель как альтернатива QCompleter
Отправлено: Flass от Май 15, 2013, 11:29
Печально. Меня в принципе почти устроил комплитер, которому я по текстчендж подсовываю мою фильтрующую модель и заставляю вываливаться. Если бы не одно но. Он, собака такая, не умеет отрисовывать деревья.
Тоесть в QCompleter::setPopup запихнуть вьюху с табличкой можно, она даже будет вполне ничего себе, с чеками даже, и чекабельная даже, а вот деревянную модель показывает только в виде корневых неразвернутых итемов. Да еще и дико тормозит, вплоть до сваливания.