Название: svg item некорректно инициализируется
Отправлено: hemmul от Март 27, 2012, 10:15
Добавляю на QGraphicScene объекты boundingRect() которых QRectF(257.5,457.5 176x304) QRectF(374.5,388.5 191x161) QRectF(258.5,226.5 213x125) QRectF(165.023,103.023 160.954x72.9535) Сохраняю объекты в SVG файл: QSvgGenerator gen; gen.setSize(QSize(MyScene->width(), MyScene->height())); gen.setViewBox(MyScene->sceneRect()); gen.setFileName(fileName); QPainter pgen (&gen); for(int i = 0; i < MyScene->items().size(); i++) { qDebug() << MyScene->items()[i]->boundingRect();} // таким образом для отладки публикую внешние границы MyView->render(&pgen,MyScene->sceneRect(), QRect( MyScene->sceneRect().left(), MyScene->sceneRect().top(), MyScene->width(), MyScene->height() ) );
Объекты сохраняются корректно. Проверил сверив координаты линии на сцене с сохраненными координатами в файле. Дальше открываю файл, выдираю каждый элемент сохраняю его во временный файл, которым инициализирую QGraphicsSvgItem, и добавляю полученный элемент на сцену. Вот содержимое файлов которыми инициализируется QGraphicsSvgItem ФАЙЛ 1. <g stroke-opacity="1" fill="none" font-family="MS Shell Dlg 2" stroke="#000000" stroke-linejoin="bevel" font-style="normal" stroke-linecap="square" font-weight="400" stroke-width="3" transform="matrix(1,0,0,1,-83,-42)" font-size="8.25"> <polyline fill="none" points="167,105 324,174 " vector-effect="none"/> </g>
ФАЙЛ 2. <g stroke-opacity="1" fill="none" font-family="MS Shell Dlg 2" stroke="#000000" stroke-linejoin="bevel" font-style="normal" stroke-linecap="square" font-weight="400" stroke-width="3" transform="matrix(1,0,0,1,-83,-42)" font-size="8.25"> <path fill-rule="evenodd" vector-effect="none" d="M260,228 L470,228 L470,350 L260,350 L260,228"/> </g>
ФАЙЛ 3 <g stroke-opacity="1" fill="none" font-family="MS Shell Dlg 2" stroke="#000000" stroke-linejoin="bevel" font-style="normal" stroke-linecap="square" font-weight="400" stroke-width="3" transform="matrix(1,0,0,1,-83,-42)" font-size="8.25"> <path fill-rule="evenodd" vector-effect="none" d="M564,469 C564,512.63 521.915,548 470,548 C418.085,548 376,512.63 376,469 C376,425.37 418.085,390 470,390 C521.915,390 564,425.37 564,469 "/> </g>
ФАЙЛ 4 <g stroke-opacity="1" fill="none" font-family="MS Shell Dlg 2" stroke="#000000" stroke-linejoin="bevel" font-style="normal" stroke-linecap="square" font-weight="400" stroke-width="3" transform="matrix(1,0,0,1,-83,-42)" font-size="8.25"> <path fill-rule="evenodd" vector-effect="none" d="M259,459 L432,459 L432,760 L259,760 L259,459"/>
Собственно проблема: В результате вижу что все элементы открытого файла сбились в кучу в начале координат сцены, их boundingRect() : QRectF(0,0 161x73) QRectF(0,0 213x125) QRectF(0,0 191x161) QRectF(0,0 176x304)
|