РА
Роман Артамонов09 березня 2019 р. 20:28

Связь объектов при помощи кликов мыши.

Здравствуйте, ребят! Пишу вам поп поводу своего проекта. Вообщем, я никак не могу получить линию между двумя кругами. Вопрос как это сделать ? И через что? У меня стоит задача построить граф компьютерной сети. С добавлением на сцену определённых объектов разобрался, а что дальше? как при нажатии на кнопку выполнить объекдинение? Точнее при клике на два круга между ними должна быть линия. Причём эта линия не должна выходить за границы кругов. Как это сделать ? Прикрепляю файл проекта.
И ещё такой вопрос. Как при нажатии мышкой выполнить уджаление объекта?
Я написал одному своему товарищу но решил подстраховаться здесь. Может кто-то выполнить ? Т.к. даже если я до чего-то докопаюсь, то даже не знаю что делать с этим.
Просто правда ребят, я почти 3 день сижу.....и всё без толку....помогите пожалуйста.....прошу!!!
GraphKS_WgAZIB4.rar GraphKS_WgAZIB4.rar

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

10
Evgenii Legotckoi
  • 10 березня 2019 р. 05:42

Добрый день.

Ну вот примерно так это может быть сделано.
GraphKS.zip GraphKS.zip

    РА
    • 10 березня 2019 р. 16:03
    • Відповідь була позначена як рішення.

    Евгений, Огромное вам спасибо!!!! Очень выручили)))) Благодарю!!!! Тему можно считать закрытой. Но у меня ещё несколько вопросов.
    1) Существует ли в Qt запись в файл?
    2) Можно ли округлять значение в Qt?
    3) Возможна ли интеграция исходника на С++ в Qt?
    4) Вообщем это всё в дальнейшем нужно для моего проекта. Могу ли я чуть позже (через месяц - два) написать про это статью? Может быть кому-то он пригодиться.
    5) Есть ли контекстное меню в Qt?

      Evgenii Legotckoi
      • 11 березня 2019 р. 04:53

      Пожалуйста.

      1. Да, для этого используется класс QFile, для выбора файла можно использовать QFileDialog
      2. Qt - это всего лишь фреймворк, библиотека, всё, округлять можно и средствами самого C++, обычно это делают через каст на int. Также в Qt есть набор своих математических функций, которые к слову дублируют стандартную библиотеку.
      3. Конечно, Qt написан на C++, поэтому нет никакой идеологической проблемы в подключении C++ библиотек в проекте на Qt, кроме чисто технических проблем, которые как правило решаемы.
      4. Да, без проблем, будет очень хорошо и кому-то может оказаться полезным. Но я бы предварительно сделал ревью вашего кода, можете создать тему на форуме. Всё-таки то, что я увидел хоть и написано было аккуратно, но всё-таки слабовато, есть куда расти.
      5. Да, есть. Класс QMenu
        РА
        • 11 березня 2019 р. 04:58
        • (відредаговано)

        Евгений у меня к вам последняя просьба, если будет время. Чуть подправил ваш код. А можете ещё чуть помочь? Буквально чуть-чуть. Как в данном проекте при перемещении кругов автоматически протянуть линию? Т.е. если перемещается один из кругов, то линия уменьшается/увеличивается за ним? помогите))))) Просто не работал с графикой. Если можно. А все остальное я выполню по данному проекту сам.Перекину чуть позже структуру проекта (что я задумал вообще).

          Evgenii Legotckoi
          • 11 березня 2019 р. 05:25
          • (відредаговано)

          Позже...

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

          Естественно, нужно этот функционал дописывать.

            РА
            • 11 березня 2019 р. 05:28

            Хорошо. Спасибо, буду ждать. Огромное вам спасибо, очень выручите.

              РА
              • 13 березня 2019 р. 03:33

              Тему пока оставлю открытой

                Evgenii Legotckoi
                • 13 березня 2019 р. 03:56

                Я помню, просто физически времени не было ))

                  РА
                  • 13 березня 2019 р. 04:05

                  Хорошо. Просто не работал с графикой. Спасибо огромное)))

                    Evgenii Legotckoi
                    • 17 березня 2019 р. 18:47

                    Добрый день.

                    Вот, нашлось у меня немного времени. Делается это через шаблон проектирования наблюдатель.

                    GraphKS_mfvSlup.zip GraphKS_mfvSlup.zip

                      Коментарі

                      Only authorized users can post comments.
                      Please, Log in or Sign up
                      d
                      • dsfs
                      • 26 квітня 2024 р. 14:56

                      C++ - Тест 004. Указатели, Массивы и Циклы

                      • Результат:80бали,
                      • Рейтинг балів4
                      d
                      • dsfs
                      • 26 квітня 2024 р. 14:45

                      C++ - Тест 002. Константы

                      • Результат:50бали,
                      • Рейтинг балів-4
                      d
                      • dsfs
                      • 26 квітня 2024 р. 14:35

                      C++ - Тест 001. Первая программа и типы данных

                      • Результат:73бали,
                      • Рейтинг балів1
                      Останні коментарі
                      k
                      kmssr09 лютого 2024 р. 05:43
                      Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                      АК
                      Анатолий Кононенко05 лютого 2024 р. 12:50
                      Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                      EVA
                      EVA25 грудня 2023 р. 21:30
                      Boost - статичне зв&#39;язування в проекті CMake під Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                      J
                      JonnyJo25 грудня 2023 р. 19:38
                      Boost - статичне зв&#39;язування в проекті CMake під Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                      G
                      Gvozdik19 грудня 2023 р. 08:01
                      Qt/C++ - Урок 056. Підключення бібліотеки Boost в Qt для компіляторів MinGW і MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                      Тепер обговоріть на форумі
                      G
                      George1305 травня 2024 р. 02:13
                      добавить qlineseries в функции Всем доброго времени суток! Товарищи, помогите, юному падавану обуздать QChart, уже неделю пытаюсь сам решить проблему, в интернете подходящих статей не нашел:) Проблема в следующем:…
                      PS
                      Peter Son04 травня 2024 р. 03:57
                      Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
                      Evgenii Legotckoi
                      Evgenii Legotckoi03 травня 2024 р. 00:07
                      Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
                      IscanderChe
                      IscanderChe30 квітня 2024 р. 14:22
                      Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…
                      G
                      Gar22 квітня 2024 р. 15:46
                      Clipboard Как скопировать окно целиком в clipb?

                      Слідкуйте за нами в соціальних мережах