N
1 июня 2017 г. 4:15

SVG

Каким образом сохранить координаты объектов сцены? Потому что при загрузке все объекты будут в одном месте

Вам это нравится? Поделитесь в социальных сетях!

10
Evgenii Legotckoi
  • 1 июня 2017 г. 12:21
  • Ответ был помечен как решение.

Вы читали стать на сайте по сохранению и восстановлению данных из SVG файла? Если нет, то прочитайте вначале их, думаю, что там есть необходимые Вам ответы:

  1. Сохранение файлов SVG
  2. Восстановление данных из файлов SVG
    N
    • 1 июня 2017 г. 12:29

    Как раз с них и делал. И загрузка и сохранение полностью скопированны из данных статей

      Evgenii Legotckoi
      • 1 июня 2017 г. 12:34

      Если сделать всё правильно, то объекты будут в нужных местах на графической сцене. Это хорошо видно в скринкасте. Могу утверждать, что Вы что-то упустили.

        N
        • 1 июня 2017 г. 12:34

        Не отрицаю. Все таки ночью делал

          Evgenii Legotckoi
          • 1 июня 2017 г. 12:37

          В статье по восстановлению данных в методе getElements есть участок кода, который отвечает за установку координат на графической сцене:

          QDomElement gElement = gNode.toElement();
          rect->setRect(rectangle.attribute("x").toInt(),
                        rectangle.attribute("y").toInt(),
                        rectangle.attribute("width").toInt(),
                        rectangle.attribute("height").toInt());
            Evgenii Legotckoi
            • 1 июня 2017 г. 12:40

            Так что, если учесть этот момент при работе с разнообразными фигурами, то необходимо анализировать теги в SVG файле и на подобии этого же кода делать установку координат для всех остальных фигур, если используются фигуры, отличные от прямоугольников.

            Можно, конечно и через QSvgRenderer восстановить все данные и координаты, но зачастую, если требуется работа с графикой, используются кастомные классы для графических объектов, поэтому стоит восстанавливать данные, как показано в статье по восстановлению данных из SVG

              N
              • 1 июня 2017 г. 13:55

              Вот посмотрите пожалуйста

                N
                • 1 июня 2017 г. 14:17

                Вот посмотрите пожалуйста. В файле только один rect. Вот в чем проблема

                  N
                  • 1 июня 2017 г. 14:20

                  точнее не один, а все. от только значения у них одинаковые

                    N
                    • 1 июня 2017 г. 14:37

                    Извините пожалуйста за беспокойство. В вашем коде ошибок нет. Это моя сонная голова не увидела, что я изначально присваивал значения для моих фигур

                      Комментарии

                      Только авторизованные пользователи могут публиковать комментарии.
                      Пожалуйста, авторизуйтесь или зарегистрируйтесь