Russian Qt Forum
Ноябрь 24, 2024, 03:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Помощь С QGraphicView и QGraphicScene  (Прочитано 11277 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #15 : Апрель 04, 2014, 15:44 »

Ну я в качестве примера привел 4, а так у меня их  10-13 в окне.
Ну и замечательно, хоть 25-30. Улыбающийся

Но я не понял как я смогу отрисовать это все в QListView.  Извините , просто с делегатами вообще не знаком и мало представляю себе, что это.
Самое время познакомиться. Делегат позволяет отрисовывать каждый элемент, т.е. вы получаете данные из модели и можете рисовать в указанной области элемента что захотите.
Записан
NickSin
Гость
« Ответ #16 : Апрель 04, 2014, 15:45 »

У него сверхсложные итемы наверно Улыбающийся Но и сам listView не рассчитан на более миллиона записей )
По сути все итемы это полигоны с текстом)  Вот я просто не сталкивался с делегированием ListView ,  поэтому как-то даже страшно, о том, что мне написали))

Ну я в качестве примера привел 4, а так у меня их  10-13 в окне.
Ну и замечательно, хоть 25-30. Улыбающийся

Но я не понял как я смогу отрисовать это все в QListView.  Извините , просто с делегатами вообще не знаком и мало представляю себе, что это.
Самое время познакомиться. Делегат позволяет отрисовывать каждый элемент, т.е. вы получаете данные из модели и можете рисовать в указанной области элемента что захотите.
А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #17 : Апрель 04, 2014, 15:49 »

А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Вы с моделями работали?
Отрисовывается только то, что видно в данный момент. А для того, что бы вы могли задать как рисовать каждый элемент служит делегат.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Апрель 04, 2014, 15:57 »

А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Если айтемов так много + они простые, то есть прямой смысл отрисовывать в paintEvent. Все эти делегаты а тем более QGraphicsItem довольно расходны по памяти (расплата за стервис).

Определить какие пр-ки видимы - простое дерево, если надо расскажу. Если мульены только в видимой части - ограничить вывод, не лупить по экрану если там уже живого места нет.
Записан
NickSin
Гость
« Ответ #19 : Апрель 04, 2014, 16:00 »

А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Вы с моделями работали?
Отрисовывается только то, что видно в данный момент. А для того, что бы вы могли задать как рисовать каждый элемент служит делегат.
C моделями вообще или то, что я пытаюсь нарисовать?
Тоесть он как и вью будет сразу отрисовывать мне весь список данных?

А их хватит отрисовать сотни тысяч итемов или пару миллионов итемов ?
Если айтемов так много + они простые, то есть прямой смысл отрисовывать в paintEvent. Все эти делегаты а тем более QGraphicsItem довольно расходны по памяти (расплата за стервис).

Определить какие пр-ки видимы - простое дерево, если надо расскажу. Если мульены только в видимой части - ограничить вывод, не лупить по экрану если там уже живого места нет.
Продолжать рисовать в сцене как и до этого, только с отрисовкой по событию ?

Ну да про деревья хотел бы узнать, если можно) А так что-то вроде окна хотел сделать - выводить только то, что сейчас мы видим .
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #20 : Апрель 04, 2014, 16:02 »

Все эти делегаты а тем более QGraphicsItem довольно расходны по памяти (расплата за стервис).
Не придумывайте, делегат это плюс один небольшой объект. Никаких расходов там нет и в помине.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #21 : Апрель 04, 2014, 16:05 »

Тоесть он как и вью будет сразу отрисовывать мне весь список данных?
Вью никогда не отрисовывает сразу весь список, только то что видно в данный момент.
Делегат можно назвать внешним обработчиком paintEvent. Т.е. видно сейчас 20 элементов на экране, значит при обновлении будет вызван метод рисования делегата для этих элементов.
 
Записан
NickSin
Гость
« Ответ #22 : Апрель 04, 2014, 16:09 »

Тоесть он как и вью будет сразу отрисовывать мне весь список данных?
Вью никогда не отрисовывает сразу весь список, только то что видно в данный момент.
Делегат можно назвать внешним обработчиком paintEvent. Т.е. видно сейчас 20 элементов на экране, значит при обновлении будет вызван метод рисования делегата для этих элементов.
 
Странно, тогда почему когда я ему подаю сцену с 100000 тысячью обьектов, он очень долго думает, а когда подумает, отрисует видимые обьекты, а потом при скролле будет тормозить. Он же отрисовывает сцену при скролле по кадрово вроде?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #23 : Апрель 04, 2014, 16:13 »

Странно, тогда почему когда я ему подаю сцену с 100000 тысячью обьектов, он очень долго думает, а когда подумает, отрисует видимые обьекты, а потом при скролле будет тормозить. Он же отрисовывает сцену при скролле по кадрово вроде?
Я про QAbstractItemView и его наследников. Улыбающийся
Записан
NickSin
Гость
« Ответ #24 : Апрель 04, 2014, 16:20 »

Странно, тогда почему когда я ему подаю сцену с 100000 тысячью обьектов, он очень долго думает, а когда подумает, отрисует видимые обьекты, а потом при скролле будет тормозить. Он же отрисовывает сцену при скролле по кадрово вроде?
Я про QAbstractItemView и его наследников. Улыбающийся

О нем я не слышал,  но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
« Последнее редактирование: Апрель 04, 2014, 16:22 от NickSin » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #25 : Апрель 04, 2014, 16:25 »

О нем я не слышал,  но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
Я вам предлагаю посмотреть на его наследника - QListView и разобраться с технологией model-view. Вы удивитесь, как у вас все упроститься. Улыбающийся
Записан
NickSin
Гость
« Ответ #26 : Апрель 04, 2014, 16:35 »

О нем я не слышал,  но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
Я вам предлагаю посмотреть на его наследника - QListView и разобраться с технологией model-view. Вы удивитесь, как у вас все упроститься. Улыбающийся
Технология? Это вы имеете ввиду делегатов? Есть ли по ней ссылка?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #27 : Апрель 04, 2014, 16:39 »

Технология? Это вы имеете ввиду делегатов? Есть ли по ней ссылка?
http://doc.crossplatform.ru/qt/4.3.2/model-view-programming.html
Записан
NickSin
Гость
« Ответ #28 : Апрель 04, 2014, 16:41 »

Технология? Это вы имеете ввиду делегатов? Есть ли по ней ссылка?
http://doc.crossplatform.ru/qt/4.3.2/model-view-programming.html
Спасибо, попробую за выходные разобраться
Записан
NickSin
Гость
« Ответ #29 : Апрель 07, 2014, 16:07 »

О нем я не слышал,  но вижу, что наследуется от того же класса, что и QGraphicView. Правда я сейчас его посмотрел, даже не представляю как его использовать... Хотелось бы как то стандартными средствами, ибо новую модель с этого класса мне описать с моим экспириенсом пока не под силу (
Я вам предлагаю посмотреть на его наследника - QListView и разобраться с технологией model-view. Вы удивитесь, как у вас все упроститься. Улыбающийся

А модель делегата лучше от кого наследовать? QAbstractItemDelegate или QItemDelegate
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.106 секунд. Запросов: 22.