Несколько наследников QGraphicsScene |
Здравствуйте, гость ( Вход | Регистрация )
Несколько наследников QGraphicsScene |
RazrFalcon |
15.9.2011, 16:59
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Есть: 2-а QGraphicsView и 2-а наследника QGraphicsScene, GraphicsScene.
Наследник сделан для того, что бы предопределить drawBackground() Создание:
Затем для каждой сцены вызывается начало рисования графика. Проблема в том, что график рисуется только на первой сцене. Хотя фоновая сетка есть у обоих. Что бы начало рисовать на второй сцене, а точнее вьюевере - нужно закоментировать:
Судя по дебагу, графики рисуются и на обеих сценах, но не отображаются только на первом вьюевере. Как решить эту багу? Может кто то сталкивался. |
|
|
RazrFalcon |
15.9.2011, 19:08
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В коде видно, что управляю я второй сценой, а рисуется первая
Пример:
Прикрепленные файлы
|
|
|
RazrFalcon |
16.9.2011, 17:10
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Help! Никак не пойму в чем бага
|
|
|
Алексей1153 |
17.9.2011, 8:42
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Цитата Судя по дебагу, графики рисуются и на обеих сценах а указатели на сцену в эти моменты тоже разные ? Может, один и тот же указатель используется если функция не статическая, смотри this Сообщение отредактировал Алексей1153 - 17.9.2011, 8:42 |
|
|
RazrFalcon |
17.9.2011, 9:15
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Где именно? В main'е или в классе?
|
|
|
Алексей1153 |
17.9.2011, 22:13
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Цитата Судя по дебагу, графики рисуются и на обеих сценах, там, где они рисуются, рисование производится через указатель на сцену, так ведь ? Так вот - действительно ли там фигурируют разные указатели, либо один ? |
|
|
RazrFalcon |
18.9.2011, 20:49
Сообщение
#7
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
ХЗ
Вроде бы разные... Кстати, заметил новый варнинг:
|
|
|
Litkevich Yuriy |
19.9.2011, 9:47
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
пытаешься удалить со сцены элемент принадлежащий другой сцене.
Копай-копай, Алексей правильно говорит, где-то ты с указателями напутал |
|
|
ssoft |
19.9.2011, 9:58
Сообщение
#9
|
Участник Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: 3 |
Бага в том, что используется глобальный массив для GraphicsItem.
GraphicsItem может принадлежать только одной сцене. Если сделать глобальные переменные членами класса, то все работает замечательно.
Прикрепленные файлы
|
|
|
RazrFalcon |
19.9.2011, 11:55
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Спасибо огромное! Вы меня спасли!
Блин, мне даже в голову это не приходило. О таких тонкостях я и не знал. |
|
|
Текстовая версия | Сейчас: 29.3.2024, 17:20 |