Название: [qt-4.2] Как реализовать такое ? Отправлено: izoomer от Декабря 20, 2006, 21:14 Мне бы сделать список свой от QAbstractItemView. Нет ли у кого примеров (chart не предлагать из примеров)?
Например есть список из восьми итемов вот хотелось быб что бы выглядело так в приложении : --------------------------- | item_7 ....................| | item_8 ....................| |-------------------------| | item_1.....................| |-------------------------| | item_2....................| | item_3.....................| ---------------------------| и по кругу при навигации список крутился и выделенный итем по высоте выше остальных (то есть тот что по центру высота больешг чем у отслаьных). Определили своего делегата для автиной и неактивной строки, но по высоте они одинаковые, а если активный выше то залазит на другие.ДУмаю надо переопределять piantEvent у QAbstractItemView. Но не знаю как ... :( Вот как такое сделать ? Готов компенисровать материально время потраченное на мое обучение и консультации ( в аське) :-) совсем в тупике я ... F1 F1 F1! Название: [qt-4.2] Как реализовать такое ? Отправлено: Alexandr Az от Декабря 21, 2006, 12:58 Нет, piantEvent для itemView здесь никоим боком не влияет. Твоя задача сводится к написанию такого comboBox, а будет он себя вести в itemView точно также как ты его напишешь.... Так что нуно писать кобобокс тебе. и piantEvent будешь в нём уже мучать..........
добавлено спустя 2 минуты: Лучше расскажи конечную задачу, тебе нужен чтобы этот комбобокс всплывал в view? добавлено спустя 8 минут: Я вообще не могу втыкнуть как реализовать такое с точки зрения пользователя. У нас барабан , на котором написаны значений и он крутится :) (если я правильно понимаю). Как в игровых автоматах. Все понятно. Юзвер жмёт кнопу вверх - он крутится на один итем вверх, вниз - аналогичная фигня. Но мыхой, как мыхой итем выбрать, кляцать на нижнем значении чтобы он вертелся? А скролл бар, если оно бесконечное (по кругу ж всё)??. Не могу представить если честно. Лучше наведи пример, если такая штука где то есть. Название: [qt-4.2] Как реализовать такое ? Отправлено: bigirbis от Декабря 21, 2006, 13:34 Вот, что получилось в первом приближении:
Код:
Код:
Может немного коряво... Название: [qt-4.2] Как реализовать такое ? Отправлено: izoomer от Декабря 21, 2006, 15:12 Цитировать Я вообще не могу втыкнуть как реализовать такое с точки зрения пользователя. У нас барабан , на котором написаны значений и он крутится :) (если я правильно понимаю). Как в игровых автоматах. Все понятно. Юзвер жмёт кнопу вверх - он крутится на один итем вверх, вниз - аналогичная фигня. Но мыхой, как мыхой итем выбрать, кляцать на нижнем значении чтобы он вертелся? А скролл бар, если оно бесконечное (по кругу ж всё)??. Не могу представить если честно. Лучше наведи пример, если такая штука где то есть. точно !!! именно так .... есть модель с множеством строк (неизменым количеством строк в процессе работы программы) отображаем так как нарисовал - именно по кругу крутим как барабан в игровых автоматах. В центре итем центральній - он выделяется по размерам, прорисовывается по другому. Навигация ВВЕРХ ВНИЗ только стрелками курсора . Скролл бар вообще выключен - отсутствует (строки пронумерованы для понимания) Вот именно так и надо. добавлено спустя 6 минут: Цитата: "bigirbis" Вот, что получилось в первом приближении: Код:
Может немного коряво... Спасибо. В общем то -это то - но с небольшими но : каким образом установить модель для данного view и как установить клонку модели , как это реализовано в QListView ? как по центру отображать выделенный виджет ? выделенный виджет выглядит не только шрифтом по другому а весь прориосван в центре по другому . Почему и думал реализовать от QAbstractItemView потому, что с моделями надо работать . Интересует именно так как я нарисовал и описал в посте выше (принцип как в игровом автомате) Название: [qt-4.2] Как реализовать такое ? Отправлено: bigirbis от Декабря 21, 2006, 16:46 Цитировать как по центру отображать выделенный виджет ? void QAbstractItemView::scrollTo ( const QModelIndex & index, ScrollHint hint = EnsureVisible ) [pure virtual] void QListWidget::scrollToItem ( const QListWidgetItem * item, QAbstractItemView::ScrollHint hint = EnsureVisible ) [slot] - зависит от выбранного пути. Цитировать Почему и думал реализовать от QAbstractItemView потому, что с моделями надо работать . Думаю, получится некоторый гемор. Но если есть веские основания... Название: [qt-4.2] Как реализовать такое ? Отправлено: izoomer от Декабря 21, 2006, 17:21 Цитировать Думаю, получится некоторый гемор. Но если есть веские основания... у меня все данные для отображения сформированы в модели, да плюс по несколько role для каждого итема (сделал делегаты и в них рисую в зависимости от ролей в строке). По другому не вижу более выгодных задач хранения данных кроме как через модель. Да плюс у меня такой механиз в модели есть корневые узлы и дочерние в одном вивере отображаю корневые а в другом дочерние того итема который в данный момент выбран . В общем такой код: Код:
только вот отобрадения надо сделать такое как описывал в постах выше ... очень надо блин .... Название: [qt-4.2] Как реализовать такое ? Отправлено: izoomer от Декабря 25, 2006, 00:43 ну поделитесь кто нибудь любым примером с QAbstractItemView (chart из примеров непоходит)
Или какой нить пример с переопределенным paintEvent у QListView полелитесь плиз Название: [qt-4.2] Как реализовать такое ? Отправлено: Alexandr Az от Декабря 25, 2006, 10:25 Так тебе bigirbis отличный пример написал, не пожалел время. Какая разница куда его прикручивать.
Название: [qt-4.2] Как реализовать такое ? Отправлено: bigirbis от Декабря 25, 2006, 10:47 Народ, кто может помогите izoomer! Время просто нет...
Там другая фича. Отобразить каталоги по-моему надо. Плюс, на большом списке все это дичайше тормозит... Название: [qt-4.2] Как реализовать такое ? Отправлено: izoomer от Декабря 25, 2006, 11:16 та не в каталогах дело
модель есть и работает - будет она на QDirModel, или на моей такой же модели разницы никакой . Требуется сделать отображение так как описано в заголовке поста моего, а для этого нужно переопределять paintEvent у QListView или свой писать вивер от QAbstractItemView (что значительно труднее). Мне бы пример хотя бы какой то ! bigirbis ты мне покажи куда копать - а я сам дальше .... плиз |