А
Александр9018. Februar 2019 16:02

Ошибка при запуске

Непойму, где исправить нужно, точнее что именно он хочет от меня.

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

10
Evgenii Legotckoi
  • 18. Februar 2019 16:27

Добрый день.

Ну Qt Creator как всегда даёт прикурить нервам новичков )))))

Я так полагаю, что у вас все эти переменные Ox , onePixelX , pictHeight , ну или часть из них являются переменными типа данных double.

А метод drawLine ожидает переменные типа int в качестве аргументов, так вот, у вас там происходит неявное преобразование из тип данных double в int. В этом случае теряется дробная часть, что может быть важно для точных расчётов, но очевидно, что это не важно в вашем коде, вам там не нужна такая точность.

Поэтому, что касается первых четырёх варнингов, то можно просто закрыть глаза на них, это будет работать.

Ну или скастовать на int явно

static_cast<int>(pictHeight)

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

Что касается последнего, то вот тут уже грубая ошибка.

Вместо такой записи

(double)rightX

Нужно записывать так

static_cast<double>(rightX)

Эта запись кастования будет правильнее для C++, а ваш изначальный вариант берёт корни ещё из Си, и является порой мягко говоря неуправляемым вариантом, поэтому в современных рекомендациях не приветствуется.

    А
    • 19. Februar 2019 14:31

    Можете пример с int 1 строчку сделать?) как правильно скаставать нужно?, с последнем разобрался. Спасибо

      Evgenii Legotckoi
      • 20. Februar 2019 03:33

      Да, конечно.

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

      paint.drawPoint(static_cast<int>(Ox*onePixelX), 0, static_cast<int>(Ox*onePixelX), static_cast<int>(pictHeight));
      

      Но вообще в продакшене обычно не заморачиваются в подобных случаях, если это не требуется для какого-либо специального случая.

      Мы у себя, например, не используем касты с double на int и оставляем неявное преобразование. Это и так любой программист с опытом понимает, что конкретно происходит в том случае. Но если вы делаете курсовую работу, то думаю, что это может быть зачтено вам в плюс, когда будете объяснять преподавателю, зачем сделали этот static_cast. (Если, конечно, я правильно понял вашу ситуацию)

        А
        • 20. Februar 2019 12:41

        Спасибо заработала)

          А
          • 20. Februar 2019 13:33

          Разбирал тут один пример, "Построение графиков простейших функций в Qt". Код вставил, хотел проверить на работа способность, выдал ошибку.

          Выделил красным код каторый высвечивает. В конце должно получится так, я так понял что код не туда добавил, либо неправильно написан.

            А
            • 20. Februar 2019 13:36

            Хочу попробовать добавить сюда ещё функций, с добавлением скорости и направления движения объектов, а в конце определить будут пересекатся или нет. По вашему много кода писать прийдётся для всего задуманого?)

              Evgenii Legotckoi
              • 20. Februar 2019 13:59

              Ну собственно я не вижу объявления тех переменных в коде, так что правильно подсвечивает.

                Evgenii Legotckoi
                • 20. Februar 2019 14:05

                Зависит от того, как будете реализовывать.

                Пересечение линий в Qt можно в несколько строк написать. Смотрите в документацию, там есть метод intersect .

                Со скоростью не знаю, как собираетесь делать, если это на основе скалярных веторов, то длина вектора будет отражать скорость.

                По сути это может вылиться в написание отдельного класс строчек на 40-50, если действительно нужно будет.

                Пересечение объектов если делать по вектору их скоростей, то скорее всего тоже строчек в 50 будет. Если навскидку.

                Если конечно это не хотите всё в реалтайме делать, если да, то ещё строчек 50.

                Но это всё навскидку, +- километр.

                  А
                  • 20. Februar 2019 14:29

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

                    Evgenii Legotckoi
                    • 21. Februar 2019 03:58

                    Ну у меня координаты передавались в зависимости от положения курсора мыши, а в вам по сути нужно будет аналогичным способом посылать даннные из полей ввода.

                    Так что здесь скорее интерфес для установи параметров будет иной.

                      Kommentare

                      Nur autorisierte Benutzer können Kommentare posten.
                      Bitte Anmelden oder Registrieren
                      Letzte Kommentare
                      A
                      ALO1ZE19. Oktober 2024 08:19
                      Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                      ИМ
                      Игорь Максимов5. Oktober 2024 07:51
                      Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                      d
                      dblas55. Juli 2024 11:02
                      QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                      k
                      kmssr8. Februar 2024 18:43
                      Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                      Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                      Jetzt im Forum diskutieren
                      J
                      JacobFib17. Oktober 2024 03:27
                      добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
                      JW
                      Jhon Wick1. Oktober 2024 15:52
                      Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
                      КГ
                      Кирилл Гусарев27. September 2024 09:09
                      Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
                      F
                      Fynjy22. Juli 2024 04:15
                      при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

                      Folgen Sie uns in sozialen Netzwerken