N
June 1, 2017, 4:15 a.m.

SVG

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

2
The question is asked by the articleQt/C++ - Lesson 044. Saving objects from QGraphicsScene into SVG

Do you like it? Share on social networks!

10
Evgenii Legotckoi
  • June 1, 2017, 12:21 p.m.
  • The answer was marked as a solution.

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

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

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

      Evgenii Legotckoi
      • June 1, 2017, 12:34 p.m.

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

        N
        • June 1, 2017, 12:34 p.m.

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

          Evgenii Legotckoi
          • June 1, 2017, 12:37 p.m.

          В статье по восстановлению данных в методе 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
            • June 1, 2017, 12:40 p.m.

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

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

              N
              • June 1, 2017, 1:55 p.m.

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

                N
                • June 1, 2017, 2:17 p.m.

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

                  N
                  • June 1, 2017, 2:20 p.m.

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

                    N
                    • June 1, 2017, 2:37 p.m.

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

                      Comments

                      Only authorized users can post comments.
                      Please, Log in or Sign up
                      • Last comments
                      • AK
                        April 1, 2025, 11:41 a.m.
                        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
                      • Evgenii Legotckoi
                        March 9, 2025, 9:02 p.m.
                        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
                      • VP
                        March 9, 2025, 4:14 p.m.
                        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
                      • ИМ
                        Nov. 22, 2024, 9:51 p.m.
                        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                      • Evgenii Legotckoi
                        Oct. 31, 2024, 11:37 p.m.
                        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup