crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Несколько наследников QGraphicsScene
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
RazrFalcon Дата 19.9.2011, 11:55
  Спасибо огромное! Вы меня спасли!
Блин, мне даже в голову это не приходило. О таких тонкостях я и не знал.

ssoft Дата 19.9.2011, 9:58
  Бага в том, что используется глобальный массив для GraphicsItem.
GraphicsItem может принадлежать только одной сцене.

Если сделать глобальные переменные членами класса, то все работает замечательно.

Litkevich Yuriy Дата 19.9.2011, 9:47
  пытаешься удалить со сцены элемент принадлежащий другой сцене.
Копай-копай, Алексей правильно говорит, где-то ты с указателями напутал
RazrFalcon Дата 18.9.2011, 20:49
  ХЗ <_<

qDebug()<<scene1<<scene2;

GraphicsScene(0x96fbc90) GraphicsScene(0x9717cf0)

Вроде бы разные...

Кстати, заметил новый варнинг:
QGraphicsScene::removeItem: item 0x9dbddc8's scene (0x9dde018) is different from this scene (0x9dbd398)
Алексей1153 Дата 17.9.2011, 22:13
 
Цитата
Судя по дебагу, графики рисуются и на обеих сценах,


там, где они рисуются, рисование производится через указатель на сцену, так ведь ? Так вот - действительно ли там фигурируют разные указатели, либо один ?
RazrFalcon Дата 17.9.2011, 9:15
  Где именно? В main'е или в классе?
Алексей1153 Дата 17.9.2011, 8:42
 
Цитата
Судя по дебагу, графики рисуются и на обеих сценах


а указатели на сцену в эти моменты тоже разные ? Может, один и тот же указатель используется

если функция не статическая, смотри this
RazrFalcon Дата 16.9.2011, 17:10
  Help! Никак не пойму в чем бага <_<
RazrFalcon Дата 15.9.2011, 19:08
  В коде видно, что управляю я второй сценой, а рисуется первая :blink:

Пример:
RazrFalcon Дата 15.9.2011, 16:59
  Есть: 2-а QGraphicsView и 2-а наследника QGraphicsScene, GraphicsScene.
Наследник сделан для того, что бы предопределить drawBackground()

Создание:
  scene = new GraphicsScene();
  graphicsView->setScene(scene);

  scene2 = new GraphicsScene();
  graphicsView_2->setScene(scene2);

Затем для каждой сцены вызывается начало рисования графика.
Проблема в том, что график рисуется только на первой сцене. Хотя фоновая сетка есть у обоих.

Что бы начало рисовать на второй сцене, а точнее вьюевере - нужно закоментировать:
  graphicsView->setScene(scene);

Судя по дебагу, графики рисуются и на обеих сценах, но не отображаются только на первом вьюевере.
Как решить эту багу? Может кто то сталкивался.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 7:28