Metelev
MetelevҚар. 18, 2018, 8:25 Т.Ж.

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

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

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

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

15
Evgenii Legotckoi
  • Қар. 18, 2018, 8:30 Т.Ж.

Добрый день!

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

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



    Metelev
    • Қар. 18, 2018, 8:34 Т.Ж.

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

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



      Evgenii Legotckoi
      • Қар. 18, 2018, 9: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, 1: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, 1:02 Т.Қ.

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

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

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


                          Metelev
                          • Қар. 20, 2018, 7: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;
                                  }
                              }

                                Пікірлер

                                Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                Кіріңіз немесе Тіркеліңіз
                                AD

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

                                • Нәтиже:50ұпай,
                                • Бағалау ұпайлары-4
                                m
                                • molni99
                                • Қаз. 26, 2024, 1:37 Т.Ж.

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

                                • Нәтиже:80ұпай,
                                • Бағалау ұпайлары4
                                m
                                • molni99
                                • Қаз. 26, 2024, 1:29 Т.Ж.

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

                                • Нәтиже:20ұпай,
                                • Бағалау ұпайлары-10
                                Соңғы пікірлер
                                ИМ
                                Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                                Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                Evgenii Legotckoi
                                Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                                Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                A
                                ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                                Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                ИМ
                                Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                                Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                d
                                dblas5Шілде 5, 2024, 11:02 Т.Ж.
                                QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                Енді форумда талқылаңыз
                                m
                                moogoҚар. 22, 2024, 7:17 Т.Ж.
                                Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                                Evgenii Legotckoi
                                Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                t
                                tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                NSProject
                                NSProjectМаусым 4, 2022, 3:49 Т.Ж.
                                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                                Бізді әлеуметтік желілерде бақылаңыз