Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Проблема с методом QTableView::scrollTo(...) |
Автор: caustic 18.4.2008, 09:17 | ||
Доброго времени суток! У меня реализован простейший поиск по данным в QTableView (t_cards). Модель данных - card_model. При совпадении с искомым текстом нужно, чтобы t_cards промотал ползунок до найденной строки. Указанный ниже код работает верно, кроме того, что никакой перемотки не происходит.
В описании scrollTo сказано, что это "чисто виртуальная функция" в базовом классе. Но ее реализация для QTableView уже есть. void QAbstractItemView::scrollTo ( const QModelIndex & index, ScrollHint hint = EnsureVisible ) [pure virtual] Пробовал и разные ScrollHint, никакой разницы. Что может быть не так? |
Автор: Ken 21.4.2008, 00:47 |
Смотрите пример по: http://www.crossplatform.ru/documentation/qtdoc4.3/itemviews-chart-pieview-cpp.php В оффициальном пакете: examples/itemviews/chart/pieview.cpp Они переопределили функцию scrollTo (). Попробуйте, надеюсь, поможет. |
Автор: SABROG 21.4.2008, 08:14 | ||
Лучше разобраться почему не работает оригинальный scrollTo:
|
Автор: caustic 23.4.2008, 09:50 |
Спасибо за предложения! Перерыл кучу исходников, пытался переопределять метод. Позже выяснил, что оригинальный scrollTo вполне нормально работает, если текущий индекс устанавливается мышкой прямо на QTableView. Долго не мог понять, в чем косяк... В итоге, все оказалось очень просто. Довольно давно для организации сортировки в QTableView я установил QSortFilterProxyModel вместо модели card_model. А текстовый поиск осуществлялся, как и раньше, по card_model. Вот индексы и не совпадали! Надо своевременно вносить изменения по всему коду, а то память - штука ненадежная. ![]() |
Автор: Любитель 23.4.2008, 13:03 | ||
|