a
May 10, 2018, 3:16 p.m.

Расталкивание квадратов

QGraphicsScene

Расталкивание квадратов при перетаскивание квадрата.
Хотел поинтересоваться, можно ли реализовать? Если да - то куда капнуть? :)

2
The question is asked by the articleQt/C++ - Lesson 023. Moving QGraphicsItem on QGraphicsScene with mouse help

Do you like it? Share on social networks!

2
Evgenii Legotckoi
  • May 10, 2018, 3:27 p.m.

Да, реализовать можно.


Копать нужно в сторону обнаружения коллизий. Например, в этой статье есть примеры получения пересекающихся на графической сцене объектов через метод collidingItems().

В том примере, по которому вы задаёте вопрос, можно проверять пересечение с другими объектами в методе mouseMoveEvent . И изменять положение других объектов с которыми у вас есть пересечение так, чтобы они отъезжали от перетаскиваемого объекта.
Но при этом нужно сразу проверять на столкновение и те объекты, которые уже разъехались от перетаскиваемого объекта. Единственной сложностью будет возможное возникновение циклических зависимостей при расталкивании объектов. Но весь масштаб проблемы можно будет понять уже во время тестирования.
    a
    • May 10, 2018, 5:47 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