Russian Qt Forum

Qt => Model-View (MV) => Тема начата: IgorK от Март 28, 2012, 14:01



Название: QCompleter, popup(), не работает setWordWrap [РЕШЕНО]
Отправлено: IgorK от Март 28, 2012, 14:01
Очень простой вопрос:
   
Код:
	QCompleter	*c = new QCompleter(model);
static_cast<QListView *>(c->popup())->setWordWrap(true);

Не работает, а должен. По идее нативный попуп у комплитера как у комбика - это лист вью, однако, такой выкрутас на комбике прокатывает, а на комплитере нет. Те видно, что листвьюха у комплитера раздвигает высоту ячеек, но перенос слов не делает, это как так вообще?  :-\


Название: Re: Еще один баг QCompleter а?
Отправлено: mutineer от Март 28, 2012, 14:11
а ты уверен что это именно QListView?


Название: Re: Еще один баг QCompleter а?
Отправлено: Пантер от Март 28, 2012, 14:13
а ты уверен что это именно QListView?
Упало бы, если не QListView...


Название: Re: Еще один баг QCompleter а?
Отправлено: GreatSnake от Март 28, 2012, 14:16
Не работает, т.к. используется свой приватный делегат QCompleterItemDelegate.
Но это не баг, а фича, т.к. тролли нигде явно не указывают, что используют QListView.
Попробуй задействовать свой popup или установи свой делегат.


Название: Re: Еще один баг QCompleter а?
Отправлено: IgorK от Март 28, 2012, 14:23
а ты уверен что это именно QListView?

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


Название: Re: Еще один баг QCompleter а?
Отправлено: mutineer от Март 28, 2012, 14:26
а ты уверен что это именно QListView?

Под дебагером проверить, кто там спрятался за этим указателем - минута времени.

Поставить qobject_cast или dynamic_cast еще быстрее;)


Название: Re: Еще один баг QCompleter а?
Отправлено: GreatSnake от Март 28, 2012, 14:31
Кстати, даже если подсовывать свой листвью с установленным вордврапом - эффект будет такой-же, что еще раз доказывает нам, что листвью не виноват.
А всё потому, что в QCompleter::setPopup() на вьюху навешивается QCompleterItemDelegate.
Выводы делай сам)


Название: Re: Еще один баг QCompleter а?
Отправлено: IgorK от Март 28, 2012, 15:14
Кстати, даже если подсовывать свой листвью с установленным вордврапом - эффект будет такой-же, что еще раз доказывает нам, что листвью не виноват.
А всё потому, что в QCompleter::setPopup() на вьюху навешивается QCompleterItemDelegate.
Выводы делай сам)

Спасибо, пофиксил, помогло.
Интересно, зачем это тролевцам понадобилось?