Здравствуйте, есть вектор указателей на пиксмапы, выше кодом они в цикле заполняются объектами, далее паксмапы паинтером заполняются нужными данными, с этим проблем нет, потом эти пиксмапы в цикле перебираются и добавляются через 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)
а в отрисовке вот что:
- http://prntscr.com/bbtewd
- http://prntscr.com/bbtf2x
хотя должно быть ровно 3 страницы, а на деле 1 и вторая накладывается, а третья почему-то такие делает отступ.