А
Александр90Feb. 18, 2019, 4:02 p.m.

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

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

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

10
Evgenii Legotckoi
  • Feb. 18, 2019, 4:27 p.m.

Добрый день.

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

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

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

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

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

static_cast<int>(pictHeight)

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

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

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

(double)rightX

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

static_cast<double>(rightX)

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

    А
    • Feb. 19, 2019, 2:31 p.m.

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

      Evgenii Legotckoi
      • Feb. 20, 2019, 3:33 a.m.

      Да, конечно.

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

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

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

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

        А
        • Feb. 20, 2019, 12:41 p.m.

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

          А
          • Feb. 20, 2019, 1:33 p.m.

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

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

            А
            • Feb. 20, 2019, 1:36 p.m.

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

              Evgenii Legotckoi
              • Feb. 20, 2019, 1:59 p.m.

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

                Evgenii Legotckoi
                • Feb. 20, 2019, 2:05 p.m.

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

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

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

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

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

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

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

                  А
                  • Feb. 20, 2019, 2:29 p.m.

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

                    Evgenii Legotckoi
                    • Feb. 21, 2019, 3:58 a.m.

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

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

                      Comments

                      Only authorized users can post comments.
                      Please, Log in or Sign up
                      e
                      • ehot
                      • April 1, 2024, 12:29 a.m.

                      C++ - Тест 003. Условия и циклы

                      • Result:78points,
                      • Rating points2
                      B

                      C++ - Test 002. Constants

                      • Result:16points,
                      • Rating points-10
                      B

                      C++ - Test 001. The first program and data types

                      • Result:46points,
                      • Rating points-6
                      Last comments
                      k
                      kmssrFeb. 9, 2024, 5:43 a.m.
                      Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                      Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                      EVA
                      EVADec. 25, 2023, 9:30 p.m.
                      Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                      J
                      JonnyJoDec. 25, 2023, 7:38 p.m.
                      Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                      G
                      GvozdikDec. 19, 2023, 8:01 a.m.
                      Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                      Now discuss on the forum
                      a
                      a_vlasovApril 14, 2024, 4:41 p.m.
                      Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                      Павел Дорофеев
                      Павел ДорофеевApril 14, 2024, 12:35 p.m.
                      QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                      f
                      fastrexApril 4, 2024, 2:47 p.m.
                      Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
                      AC
                      Alexandru CodreanuJan. 19, 2024, 10:57 p.m.
                      QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…

                      Follow us in social networks