Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Flakes от Ноябрь 09, 2009, 05:36



Название: QItemSelectionModel::currentChanged() срабатывает первей selectionChanged()
Отправлено: Flakes от Ноябрь 09, 2009, 05:36
Вот такая проблема, когда выделение с трех ячеек сбрасывается кликанием на пятую, *почему-то* срабатывает первым делом currentChanged() сигнал, и на тот момент selectionModel()->selection() еще помнит те три ячейки.
(http://i38.tinypic.com/2502wbo.gif)

Неужели так логичней или я чего-то не понимаю? Это ломает мне весь кайф.

Очень прошу, подскажите, как сделать чтоб selectionChanged() срабатывал первей, или как в момент currentChanged() получить более актуальную selectionModel.


Название: Re: QItemSelectionModel::currentChanged() срабатывает первей selectionChanged()
Отправлено: Barmaglodd от Ноябрь 09, 2009, 11:39
connect(selectionModel, SIGNAL(currentChanged()), ВАШ_ОБЪЕКТ, SLOT(ВАШ_СЛОТ), Qt::QueuedConnection);


Название: Re: QItemSelectionModel::currentChanged() срабатывает первей selectionChanged()
Отправлено: Flakes от Ноябрь 09, 2009, 23:46
Примного благодарен, помогло.


Название: Re: QItemSelectionModel::currentChanged() срабатывает первей selectionChanged()
Отправлено: Flakes от Ноябрь 11, 2009, 02:15
Хм, один косяк все равно осталься. В момент currentChanged() все равно еще старая selectionModel, если после из выборки выбрать ячейку из прежнего диапазона, то есть как у меня с первой по третью. Еслм 5ю или 4ю или другие столбцы то selectionModel уже новая. Попахивает багом.

Может это разные типа селекта и их как-то можно отличать?