Russian Qt Forum
Ноябрь 24, 2024, 05:46
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Помощь С QGraphicView и QGraphicScene
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Помощь С QGraphicView и QGraphicScene (Прочитано 11310 раз)
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #15 :
Апрель 04, 2014, 15:44 »
Цитата: NickSin от Апрель 04, 2014, 15:37
Ну я в качестве примера привел 4, а так у меня их 10-13 в окне.
Ну и замечательно, хоть 25-30.
Цитата: NickSin от Апрель 04, 2014, 15:37
Но я не понял как я смогу отрисовать это все в QListView. Извините , просто с делегатами вообще не знаком и мало представляю себе, что это.
Самое время познакомиться. Делегат позволяет отрисовывать каждый элемент, т.е. вы получаете данные из модели и можете рисовать в указанной области элемента что захотите.
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #16 :
Апрель 04, 2014, 15:45 »
Цитата: Bepec от Апрель 04, 2014, 15:39
У него сверхсложные итемы наверно
Но и сам listView не рассчитан на более миллиона записей )
По сути все итемы это полигоны с текстом) Вот я просто не сталкивался с делегированием ListView , поэтому как-то даже страшно, о том, что мне написали))
Цитата: Old от Апрель 04, 2014, 15:44
Цитата: NickSin от Апрель 04, 2014, 15:37
Ну я в качестве примера привел 4, а так у меня их 10-13 в окне.
Ну и замечательно, хоть 25-30.
Цитата: NickSin от Апрель 04, 2014, 15:37
Но я не понял как я смогу отрисовать это все в QListView. Извините , просто с делегатами вообще не знаком и мало представляю себе, что это.
Самое время познакомиться. Делегат позволяет отрисовывать каждый элемент, т.е. вы получаете данные из модели и можете рисовать в указанной области элемента что захотите.
А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #17 :
Апрель 04, 2014, 15:49 »
Цитата: NickSin от Апрель 04, 2014, 15:45
А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Вы с моделями работали?
Отрисовывается только то, что видно в данный момент. А для того, что бы вы могли задать как рисовать каждый элемент служит делегат.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #18 :
Апрель 04, 2014, 15:57 »
Цитата: NickSin от Апрель 04, 2014, 15:45
А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Если айтемов так много + они простые, то есть прямой смысл отрисовывать в paintEvent. Все эти делегаты а тем более QGraphicsItem довольно расходны по памяти (расплата за стервис).
Определить какие пр-ки видимы - простое дерево, если надо расскажу. Если мульены только в видимой части - ограничить вывод, не лупить по экрану если там уже живого места нет.
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #19 :
Апрель 04, 2014, 16:00 »
Цитата: Old от Апрель 04, 2014, 15:49
Цитата: NickSin от Апрель 04, 2014, 15:45
А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Вы с моделями работали?
Отрисовывается только то, что видно в данный момент. А для того, что бы вы могли задать как рисовать каждый элемент служит делегат.
C моделями вообще или то, что я пытаюсь нарисовать?
Тоесть он как и вью будет сразу отрисовывать мне весь список данных?
Цитата: Igors от Апрель 04, 2014, 15:57
Цитата: NickSin от Апрель 04, 2014, 15:45
А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Если айтемов так много + они простые, то есть прямой смысл отрисовывать в paintEvent. Все эти делегаты а тем более QGraphicsItem довольно расходны по памяти (расплата за стервис).
Определить какие пр-ки видимы - простое дерево, если надо расскажу. Если мульены только в видимой части - ограничить вывод, не лупить по экрану если там уже живого места нет.
Продолжать рисовать в сцене как и до этого, только с отрисовкой по событию ?
Ну да про деревья хотел бы узнать, если можно) А так что-то вроде окна хотел сделать - выводить только то, что сейчас мы видим .
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #20 :
Апрель 04, 2014, 16:02 »
Цитата: Igors от Апрель 04, 2014, 15:57
Все эти делегаты а тем более QGraphicsItem довольно расходны по памяти (расплата за стервис).
Не придумывайте, делегат это плюс один небольшой объект. Никаких расходов там нет и в помине.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #21 :
Апрель 04, 2014, 16:05 »
Цитата: NickSin от Апрель 04, 2014, 16:00
Тоесть он как и вью будет сразу отрисовывать мне весь список данных?
Вью никогда не отрисовывает сразу весь список, только то что видно в данный момент.
Делегат можно назвать внешним обработчиком paintEvent. Т.е. видно сейчас 20 элементов на экране, значит при обновлении будет вызван метод рисования делегата для этих элементов.
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #22 :
Апрель 04, 2014, 16:09 »
Цитата: Old от Апрель 04, 2014, 16:05
Цитата: NickSin от Апрель 04, 2014, 16:00
Тоесть он как и вью будет сразу отрисовывать мне весь список данных?
Вью никогда не отрисовывает сразу весь список, только то что видно в данный момент.
Делегат можно назвать внешним обработчиком paintEvent. Т.е. видно сейчас 20 элементов на экране, значит при обновлении будет вызван метод рисования делегата для этих элементов.
Странно, тогда почему когда я ему подаю сцену с 100000 тысячью обьектов, он очень долго думает, а когда подумает, отрисует видимые обьекты, а потом при скролле будет тормозить. Он же отрисовывает сцену при скролле по кадрово вроде?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #23 :
Апрель 04, 2014, 16:13 »
Цитата: NickSin от Апрель 04, 2014, 16:09
Странно, тогда почему когда я ему подаю сцену с 100000 тысячью обьектов, он очень долго думает, а когда подумает, отрисует видимые обьекты, а потом при скролле будет тормозить. Он же отрисовывает сцену при скролле по кадрово вроде?
Я про QAbstractItemView и его наследников.
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #24 :
Апрель 04, 2014, 16:20 »
Цитата: Old от Апрель 04, 2014, 16:13
Цитата: NickSin от Апрель 04, 2014, 16:09
Странно, тогда почему когда я ему подаю сцену с 100000 тысячью обьектов, он очень долго думает, а когда подумает, отрисует видимые обьекты, а потом при скролле будет тормозить. Он же отрисовывает сцену при скролле по кадрово вроде?
Я про QAbstractItemView и его наследников.
О нем я не слышал, но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
«
Последнее редактирование: Апрель 04, 2014, 16:22 от NickSin
»
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #25 :
Апрель 04, 2014, 16:25 »
Цитата: NickSin от Апрель 04, 2014, 16:20
О нем я не слышал, но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
Я вам предлагаю посмотреть на его наследника - QListView и разобраться с технологией model-view. Вы удивитесь, как у вас все упроститься.
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #26 :
Апрель 04, 2014, 16:35 »
Цитата: Old от Апрель 04, 2014, 16:25
Цитата: NickSin от Апрель 04, 2014, 16:20
О нем я не слышал, но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
Я вам предлагаю посмотреть на его наследника - QListView и разобраться с технологией model-view. Вы удивитесь, как у вас все упроститься.
Технология? Это вы имеете ввиду делегатов? Есть ли по ней ссылка?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #27 :
Апрель 04, 2014, 16:39 »
Цитата: NickSin от Апрель 04, 2014, 16:35
Технология? Это вы имеете ввиду делегатов? Есть ли по ней ссылка?
http://doc.crossplatform.ru/qt/4.3.2/model-view-programming.html
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #28 :
Апрель 04, 2014, 16:41 »
Цитата: Old от Апрель 04, 2014, 16:39
Цитата: NickSin от Апрель 04, 2014, 16:35
Технология? Это вы имеете ввиду делегатов? Есть ли по ней ссылка?
http://doc.crossplatform.ru/qt/4.3.2/model-view-programming.html
Спасибо, попробую за выходные разобраться
Записан
NickSin
Гость
Re: Помощь С QGraphicView и QGraphicScene
«
Ответ #29 :
Апрель 07, 2014, 16:07 »
Цитата: Old от Апрель 04, 2014, 16:25
Цитата: NickSin от Апрель 04, 2014, 16:20
О нем я не слышал, но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
Я вам предлагаю посмотреть на его наследника - QListView и разобраться с технологией model-view. Вы удивитесь, как у вас все упроститься.
А модель делегата лучше от кого наследовать? QAbstractItemDelegate или QItemDelegate
Записан
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...