Название: cтранные вещи с QAbstarctItemView Отправлено: izoomer от Январь 31, 2007, 13:44 [qt-4.2 Linux]
есть модель .... item_1 item_1_2 item_1_3 item_1_4 item_2 item_2_1 item_2_2 item_2_3 item_2_4 и так далее ... и два вивера созданных от QAbstarctItemView - JListView. Если в моём классе JListView, созданом от QAbstarctItemView, прописано Код:
и в MainWindow создан экземпляр JListView то кнопками перемещения курсора навигация по строкам идет так как надо .... однако ... если этот метод в реализации класса JListView закоментировать и использовать программную навигацию по строкам непосредственно в классе MainWindow, такого вида: Код:
то навигация тормозит очень сильно ... тормозит именно перемещение построкам ... как бы с замерзанием . Если реализацию moveCursor раскоментирновать и использовать паралельно с программной навигацией то так же тормозит очень ... как сделать навигацию по строкам правильно и без тормозов .... ? Название: cтранные вещи с QAbstarctItemView Отправлено: Racheengel от Февраль 01, 2007, 00:56 ИМХО там где JListView::moveCursor правильней.
Вьюв отвечает за свою навигацию, а не главная форма. Название: cтранные вещи с QAbstarctItemView Отправлено: izoomer от Февраль 01, 2007, 11:15 так вот в том то и задача ... что управление навигацией по строкам в вивере идет из главной формы .... по внешним сигналам ... или по нажатиям кнопок на главной форме ... но не кнопками клавиатуры "вверх" "вниз" ...
Название: cтранные вещи с QAbstarctItemView Отправлено: Racheengel от Февраль 01, 2007, 15:11 а почему тогда не вызывать JListView::moveCursor из главной формы, просто передавая нужный cursorAction в качестве параметра?
Название: cтранные вещи с QAbstarctItemView Отправлено: izoomer от Февраль 01, 2007, 17:35 вот перенес moveCursor в своем вивере в public, но ругается на то что enum CursorAction находится в протекте у QAbstarcItemView .... подскижите как грамотно вызвать moveCursor
Название: cтранные вещи с QAbstarctItemView Отправлено: Racheengel от Февраль 01, 2007, 21:29 Так как JListView наследован QAbstarcItemView - следовательно, данный энум он видит. Тут скорее всего можно его сделать публиком в JListView, и юзать JListView::CursorAction.
добавлено спустя 3 минуты: или как вариант сделать JListView::moveCursorInt, куда передавать интовое значение CursorAction, где кастить его к QAbstractItemView::CursorAction и вызывать уже родной JListView::moveCursor. Название: cтранные вещи с QAbstarctItemView Отправлено: izoomer от Февраль 02, 2007, 16:29 а можно попросить кодом показать ... очень буду признателен ...
Название: cтранные вещи с QAbstarctItemView Отправлено: izoomer от Февраль 03, 2007, 17:09 странно ... определили слоты для перемещения по строкам вивера
Код:
moveCursor вызывается , однако ничего на экране не перемещается ... а от клавиатуры все работает Код:
ещё выяснил, что если для двух виверов использовать одну модель (как в моем случае), и в одном вивере отображать корневые итемы а в другом все дочерние итемы выбранного в данный момент корневого итема в первом вивере , то при клике - установка setRootIndex очень тормозит обновление .. почему ? |