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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не срабатывает установка позиции для QGraphicsPixmapItem в QGraphicsScene  (Прочитано 1909 раз)
fenixrus
Гость
« : Июнь 03, 2016, 16:28 »

Здравствуйте, есть вектор указателей на пиксмапы, выше кодом они в цикле заполняются объектами, далее паксмапы паинтером заполняются нужными данными, с этим проблем нет, потом эти пиксмапы в цикле перебираются и добавляются через QGraphicsPixmapItem на QGraphicsScene, но почему-то они накладываются друг на друга, хотя я тут же получаю их координаты - они корректны.

Код таков:

Код:
QVector <QPixmap*> *pagePixmapList = nullptr;
QGraphicsScene *documentScene = new QGraphicsScene;
QGraphicsView *documentView = new QGraphicsView(documentScene);
documentScene->setSceneRect(0, 0, 1000, 5000);
for (int j = 0; j < 3; j++)
{
    QPixmap *newPixmapPage = new QPixmap(widthA4, heightA4);
    qDebug() <<  "j = " << j << " " << newPixmapPage;
    newPixmapPage->fill(QColor::fromRgba(qRgba(0, 0, 0, 0)));
    pagePixmapList->push_back(newPixmapPage);
}

double pOffset = 10;

for (int j = 0; j < 3; j++)
{
    qDebug() << " ";
    qDebug() << "j = " << j << " " << pagePixmapList->at(j);
    qDebug() << "pOffset " << pOffset;
    QPixmap *p = pagePixmapList->at(j);
    QGraphicsPixmapItem* pitem = new QGraphicsPixmapItem(*p);
    pitem->setPos(0,pOffset);
    qDebug() << pitem->pos();
    pOffset += p->height() + 20;
    documentScene->addItem(pitem);
}

В итоге вывод дебага таков:

Код:
j =  0   0x1952a760
pOffset  11.3386
QPointF(0,11.3386)

j =  1   0x1952a778
pOffset  1144.68
QPointF(0,1144.68)

j =  2   0x1952a790
pOffset  2278.02
QPointF(0,2278.02)

а в отрисовке вот что:


хотя должно быть ровно  3 страницы, а на деле 1 и вторая накладывается, а третья почему-то такие делает отступ.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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