Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: фоновый рисунок сцены
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
anater
Доброго времени суток!

Ситуация следующая. Необходимо создать сцену фоновым рисунком которой будет схема агрегата и далее динамически будут добавляться элементы в виде кнопок пояснений и т.п. Первый раз сделал для сцены setbackground. Картинка выставилась... но в виде заливки... т.е. получил много схемок в качестве текстуры сцены. что не гут :( далее нары в инете метод addPixmap. тоже выставилось. нормально выставилось. но при добавлении элемента например addEllipce картинка отъезжает в сторонку давая место для этого самого нового элемента... Плих хелп! Как сделать нормальный фоновый рисунок агрегата на сцене и добавлять элементы поверх рисунка... чтобы ничего не разъезжалось?
Litkevich Yuriy
я просто добавляю элемент-рисунок по середине сцены:
    QSize sceneSize = QSize(640, 480);
    QPoint sceneOrigin(-320, -240);

    scene = new QGraphicsScene(QRectF(sceneOrigin, sceneSize));
    pView = new MyView(scene);

...

    QPixmap pic2("./misc/circuit.svg");
    QSize pic2Size = pic2.size();
    QGraphicsPixmapItem* circuit = new QGraphicsPixmapItem(pic2);
    int x = sceneSize.width()/2 - pic2Size.width()/2;
    int y = sceneSize.height()/2 - pic2Size.height()/2;
    circuit->setPos(sceneOrigin.x() + x, sceneOrigin.y() + y);
    //circuit->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
    circuit->setZValue(-1);
флаг перемещения и выделения не устанавливается.
Z-порядок отрицательный, а у остальных элементов положительный или нулевой (по умолчанию), получается так:
Нажмите для просмотра прикрепленного файла
anater
Цитата(Litkevich Yuriy @ 18.1.2010, 17:03) *
я просто добавляю элемент-рисунок по середине сцены:
...


Симпатишное решение что то я до такого и не допер.... А в сцену как добавляешь?
Litkevich Yuriy
Цитата(anater @ 18.1.2010, 20:42) *
А в сцену как добавляешь?
так же как и другие элементы
scene->addItem(circuit);


anater, не цитируй целыми сообщениями
anater
Сделал как ты сказал. спасибо. заработало.
Вот только одно маленькое но.
Элементы у мене на панели подвижные, и если я начинаю элементы двигать то и картинка иногда тоже съезжает. Можно сделать по размеру картинки но по моему это не совсем хорошо. Есть варианты как ее намертво привязать к центру экрана?
Litkevich Yuriy
не понял, что и почему съезжает. Линейки прокрутки появляются на представлении?
anater
Цитата(Litkevich Yuriy @ 18.1.2010, 19:24) *
не понял, что и почему съезжает. Линейки прокрутки появляются на представлении?

Нет я их отрубил. Прокрутки быть не должно. Просто при игре с элементом он то нормально на рисунке лежит но если чуть выше или ниже найти точку то рисунок приподнимается или опускается.
Litkevich Yuriy
Цитата(anater @ 18.1.2010, 22:38) *
но если чуть выше или ниже найти точку то рисунок приподнимается или опускается.
приведи два снимка, до того как съехало и после. А то я не совсем понимаю, что происходит.
anater
Цитата(Litkevich Yuriy @ 18.1.2010, 19:24) *
не понял, что и почему съезжает. Линейки прокрутки появляются на представлении?

Да к стати а метод drawBackground не пробывал реализовывать. А то я написал на форуме nokia и они пока молчат.

Цитата(Litkevich Yuriy @ 18.1.2010, 19:42) *
Цитата(anater @ 18.1.2010, 22:38) *
но если чуть выше или ниже найти точку то рисунок приподнимается или опускается.
приведи два снимка, до того как съехало и после. А то я не совсем понимаю, что происходит.

Что то не смог добавить сюды рисунки. Но выложил на ftp.
ftp://85.94.44.102/pub/normal.bmp
ftp://85.94.44.102/pub/not_normal.bmp

Черный круг это дополнительный элемент который при старте находится в центре картинки фоновой. Но на рисунке видно что если я начинаю этот элемент выставлять на картинке то фоновая картинка едет.
Litkevich Yuriy
anater, ужас! Зачем bmp, выложи лучше png, а то ведь не дождёшся когда загрузится.
anater
Цитата(Litkevich Yuriy @ 18.1.2010, 20:54) *
anater, ужас! Зачем bmp, выложи лучше png, а то ведь не дождёшся когда загрузится.

Да уж :) Разобрался. С размерами сцены немного дал маху. А так сделал по твоему варианту и все работает :)
Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.