Создание неограниченного количества элементов |
Здравствуйте, гость ( Вход | Регистрация )
Создание неограниченного количества элементов |
RazrFalcon |
12.8.2010, 22:28
Сообщение
#31
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Алексей1153, что значит показать, у меня обычно они так видны (все что я таким способом создавал), а при setVisible/show просто отдельный виджет появляется с graphicsViev. Циклом твои тоже ничего не видно, хотя компилит. Спасибо за цикл кстати.
Litkevich Yuriy, ну их создается ровно столько сколько нужно, циклом, так что лишних нет. я же писал, что то типа раскадровки гиф/видео, там же их будет 1000-чи... Сообщение отредактировал RazrFalcon - 12.8.2010, 22:33 |
|
|
Алексей1153 |
12.8.2010, 22:43
Сообщение
#32
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
RazrFalcon, ну, предположим, он видим. Но ты указатель на родительский виджет не передаёшь
Цитата new QGraphicsView(); может, тут сябака порылась? ) что то типа раскадровки гиф/видео, там же их будет 1000-чи... достаточно столько вьюх, сколько влезет на экран. Остальное - организовать "логическое окно" просмотра (вроде как цепь протягивают в трубе, а в трубе есть 5 отверстий - видно одновременно 5 кадров-звеньев) |
|
|
RazrFalcon |
12.8.2010, 23:14
Сообщение
#33
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Алексей1153, спасибо за идею попробую ограничится только влезшими на экран.
Спасибо всем, все работает. Создаем: Изменяем:
PS (this) помог, я как то раньше не обращал внимания. PSS еще б с этим разобраться =) Сообщение отредактировал RazrFalcon - 12.8.2010, 23:18 |
|
|
Алексей1153 |
13.8.2010, 6:45
Сообщение
#34
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
RazrFalcon, ещё два момента:
1) поскольку QList<QGraphicsView *> list предположительно - член класса, то перед циклом заполнения не забывай проверить, сколько элементов уже есть в списке. Не забывай также удалить через delete (как вариант, можно сделать оболочку для указателя, чтобы не приходилось вызывать delete вручную - щас приведу ниже) Раскрывающийся текст
теперь, если изменение размера вектора влечёт за собой удаление элементов, delete вызовется автоматом 2)число 10 - это от балды. Тут следует сделать динамическую прикидку количества вьюх Сообщение отредактировал Алексей1153 - 13.8.2010, 20:32 |
|
|
BRE |
13.8.2010, 7:59
Сообщение
#35
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Алексей1153, для чего столько всего в деструкторе?
достаточно просто:
По стандарту delete умеет работать с 0-указателями, он их проверяет и ничего не удаляет. Зануление указателя в деструкторе тоже бессмыслено, сразу после этого объект все равно разрушиться. |
|
|
Алексей1153 |
13.8.2010, 8:05
Сообщение
#36
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
BRE, проверка if(m_p) здесь обязательна: смотри работу operator= Стандарт стандартом, но грабли потом искать не хочется, если что
ну а обнуление висячего указателя - это просто полезная привычка Сообщение отредактировал Алексей1153 - 13.8.2010, 8:06 |
|
|
BRE |
13.8.2010, 8:07
Сообщение
#37
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
BRE, проверка if(m_p) здесь обязательна: смотри работу operator= В деструкторе, перед delete? А для чего? ну а обнуление висячего указателя - это просто полезная привычка Самая полезная привычка в программировании это постоянно думать что делаешь, а не полагаться на автоматизм. |
|
|
Алексей1153 |
13.8.2010, 8:11
Сообщение
#38
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
перед delete именно перед ним Про грабли я уже сказал, а ещё, бывает, люди переопределяют delete. Автоматизмом тут не пахнет Ну а думать - это всегда пожалуйста, работа такая )) Но некоторые вещи отработаны до автоматизЬма - это экономит время и сокращает глюки (и колическтво разъярённых клиентов) Поэтому, если так сильно хочется, можно и удалить "лишний код", но это бессмысленно - на быстродействии это не скажется всё равно |
|
|
BRE |
13.8.2010, 8:16
Сообщение
#39
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
именно перед ним Про грабли я уже сказал, а ещё, бывает, люди переопределяют delete. Автоматизмом тут не пахнет Именно перед ним эта проверка абсолютно бессмысленна. Какие грабли? А если люди переопределяют delete, то делают эту проверку первой. Как-то странно забыть ее сделать в delete и не забывать ее делать во всех остальных местах. |
|
|
Алексей1153 |
13.8.2010, 8:20
Сообщение
#40
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Хорошо, пусть будет так:
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 14:50 |