Metelev
Metelev18 листопада 2018 р. 08:25

Управление кнопкой

Здравствуйте, недавно начал изучать Qt. Появилась идея реализовать движение кнопки (например по кругу или рисуя квадрат). Хотелось бы спросить совета у опытных ребят, может кто-то подскажет, как реализовать такую идейку?

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

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

15
Evgenii Legotckoi
  • 18 листопада 2018 р. 08:30

Добрый день!

Реализовать движение кнопки - не совсем понятна задача. Что значит движение кнопки? Перемещение самого объекта или реакция какого-то объекта на на нажатие клавиш.

Любую задачу в программировании стоит начинать с чёткой постановки задачи. "Что конкретно нужно сделать?" Тогда будет проще что-то посоветовать, поэтому опишите подробнее, что хотите сделать. Как это должно выглядеть. Просто сама фраза - "реализовать движение кнопки" не совсем до конца понятна.



    Metelev
    • 18 листопада 2018 р. 08:34

    Хорошо, я постараюсь.

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



      Evgenii Legotckoi
      • 18 листопада 2018 р. 09:54

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

      Я не стал делать слишком сложный пример, но думаю, что это то, что вам нужно для начала. Также посмотрите в разделе Qt ещё статьи по игре в Qt и работе с графической сценой. Думаю, что это будет наиболее интересное для вас.

        Metelev
        • 18 листопада 2018 р. 12:23

        Евгений, попробовал запустить вашу программу. Вышло вот это. В чем проблема?

          Evgenii Legotckoi
          • 18 листопада 2018 р. 12:36

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

            Metelev
            • 18 листопада 2018 р. 12:44

            Вроде все сделал, не помогло

              Evgenii Legotckoi
              • 18 листопада 2018 р. 12:54

              Так, знаю... У вас там MainWindow, вы просто скопировали код. В конце статьи есть ссылка на Git Repository со всем исходным кодом. Скачайте оттуда. У вас немного классы в наследовании неправильно сделаны, как я полагаю, да и наверняка ui файла или нет, или он для MainWindow. В общем из Git репозитория исходник скачайте.

                Metelev
                • 18 листопада 2018 р. 13:11

                Большое спасибо, все получилось, завтра начну изучать код.

                  Metelev
                  • 19 листопада 2018 р. 10:49

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

                    Evgenii Legotckoi
                    • 19 листопада 2018 р. 12:22

                    Ну там есть методы stop(), pause(), start() , что у QSequentialAnimationGroup, что у QPropertyAnimation.

                    У вас на каком уровне программирование на C++само по себе?

                      Metelev
                      • 19 листопада 2018 р. 12:34

                      Классы в теории изучил, практики совсем нет. Можно сказать с Qt в бою обучаюсь :)

                      Есть вопрос еще к вам. Недавно познакомился с github. Хотелось бы узнать, можешь подскажете пользователей, у кого много выполненных работ для начинающих Qt. Просто лично мне на примерах намного проще обучаться. С++ так и учил.

                        Evgenii Legotckoi
                        • 19 листопада 2018 р. 13:02

                        Я редко нахожу ответы на вопросы по Qt на гитхабе. Чаще хватает официальной документации или просто в поиске по интернету, или вот в заметках у самого себя.

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

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


                          Metelev
                          • 20 листопада 2018 р. 07:30

                          Большое спасибо за совет. Обязательно учту.

                            Metelev
                            • 22 листопада 2018 р. 11:13

                            Евгений, здравствуйте. Я все пытаюсь реализовать возможность остановки кнопки при нажатии на нее...

                            Может дадите подсказку, как лучше всего реализовывать? ( В Уроке 86)

                              Evgenii Legotckoi
                              • 22 листопада 2018 р. 12:40

                              Делайте проверку на текущее состояние кнопки

                              void Widget::onClickButton()
                              {
                                  switch (animationGroup->state())
                                  {
                                      case QAbstractAnimation::State::Stopped:
                                          animationGroup->start();
                                          break;
                                      case QAbstractAnimation::State::Running:
                                          animationGroup->pause();
                                          break;
                                      case QAbstractAnimation::State::Paused:
                                          animationGroup->resume();
                                          break;
                                  }
                              }

                                Коментарі

                                Only authorized users can post comments.
                                Please, Log in or Sign up
                                AD

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

                                • Результат:50бали,
                                • Рейтинг балів-4
                                m
                                • molni99
                                • 26 жовтня 2024 р. 01:37

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

                                • Результат:80бали,
                                • Рейтинг балів4
                                m
                                • molni99
                                • 26 жовтня 2024 р. 01:29

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

                                • Результат:20бали,
                                • Рейтинг балів-10
                                Останні коментарі
                                ИМ
                                Игорь Максимов22 листопада 2024 р. 11:51
                                Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                Evgenii Legotckoi
                                Evgenii Legotckoi31 жовтня 2024 р. 14:37
                                Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                A
                                ALO1ZE19 жовтня 2024 р. 08:19
                                Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                ИМ
                                Игорь Максимов05 жовтня 2024 р. 07:51
                                Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                d
                                dblas505 липня 2024 р. 11:02
                                QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                Тепер обговоріть на форумі
                                Evgenii Legotckoi
                                Evgenii Legotckoi24 червня 2024 р. 15:11
                                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                t
                                tonypeachey115 листопада 2024 р. 06:04
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                NSProject
                                NSProject04 червня 2022 р. 03:49
                                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                                9
                                9Anonim25 жовтня 2024 р. 09:10
                                Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

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