Название: реализация таймера Отправлено: Lora от Январь 17, 2014, 22:38 здравствуйте, я новенькая и сейчас пишу таймер на Qt
подскажите, пожалуйста, вот есть окошко, куда вводить через сколько времени прозвенит, т.е. минуты часы секунды. так вот. вбивая эти данные туда, компилятор потом должен из перевести в формат QtTime через метод fromString и потом я просто хотела перевести эти значения, что вбивает пользователь в милисекунды, но не знаю как. а потом только сравнить их с помощью метода elapsed( ), который как раз определяет, сколько прошло времени подскажите, помогите, направьте в правильное русло((( уже день думаю над этой задачкой, даже прогуглить толком нечего( код у меня наполовину есть, тот что в трёх файлах - h, cpp и main, но он представляет из себя обыкновенные часы с окошком для ввода времени таймера, так что ничего особого в нём нет Название: Re: реализация таймера Отправлено: Lora от Январь 17, 2014, 22:41 он какой то такой, корявый, но часы показывает.
чтоб вы не думали, что я совсем тупая и ничего не делала...))) Код: #include "mainwindow.h" Название: Re: реализация таймера Отправлено: kibsoft от Январь 17, 2014, 23:21 Цитировать т.е. минуты часы секунды. так вот. вбивая эти данные туда, компилятор потом должен из перевести в формат QtTime через метод fromString и потом я просто хотела перевести эти значения, что вбивает пользователь в милисекунды, но не знаю как. Через QTime не получится. Просто вручную переведите часы, минуты и секунды в миллисекундыЦитировать а потом только сравнить их с помощью метода elapsed( ), который как раз определяет, сколько прошло времени Зачем что-то сравнивать? Задаем QTimer'у установленный пользователем интервал (вы перевели его в миллисекунды) и ждем сигнала timeout().Название: Re: реализация таймера Отправлено: Alexu007 от Январь 19, 2014, 07:38 Зачем вообще милисекунды?
Есть таймер, который каждый определенный промежуток времени умеет сигнал эмитировать (не звуковой!). Вот в обработчике этого сигнала и вычитайте заранее установленное время вручную: секунды - 1; если (секунды == 0) секунды = 60; минуты - 1; если (минуты == 0) минуты = 60; часы - 1; И тут же в этом обработчике цифры на экран выводите. Будет ваш таймер тикать, пока 00:00:00 на экране не нарисуется. А дальше - ВЗРЫВ!!! ВЗРЫВ!!! ВЗРЫВ!!! Пособие для начинающих террористок. Как прикрутить в программу таймер - легко гуглится. Да, и ещё. Вы не старайтесь сразу всю программу целиком написать. Сперва таймер в программе запустите, пусть каждую секунду хоть цифры прибавляющиеся на экран выводит, что будет свидетельствовать о его работоспособности. Потом думать начнёте, как вместо цифр время на экран вывести. А когда и время затикает - можно докрутить окна ввода времени в таймер. Название: Re: реализация таймера Отправлено: Lora от Январь 19, 2014, 11:06 Зачем вообще милисекунды? Есть таймер, который каждый определенный промежуток времени умеет сигнал эмитировать (не звуковой!). Вот в обработчике этого сигнала и вычитайте заранее установленное время вручную: секунды - 1; если (секунды == 0) секунды = 60; минуты - 1; если (минуты == 0) минуты = 60; часы - 1; И тут же в этом обработчике цифры на экран выводите. Будет ваш таймер тикать, пока 00:00:00 на экране не нарисуется. А дальше - ВЗРЫВ!!! ВЗРЫВ!!! ВЗРЫВ!!! Пособие для начинающих террористок. Как прикрутить в программу таймер - легко гуглится. Да, и ещё. Вы не старайтесь сразу всю программу целиком написать. Сперва таймер в программе запустите, пусть каждую секунду хоть цифры прибавляющиеся на экран выводит, что будет свидетельствовать о его работоспособности. Потом думать начнёте, как вместо цифр время на экран вывести. А когда и время затикает - можно докрутить окна ввода времени в таймер. не подскажешь, что это за метод????? Название: Re: реализация таймера Отправлено: Alexu007 от Январь 19, 2014, 11:58 Этот метод называется "вручную". Не всегда использовать готовые функции, а когда проще - написать свою реализацию.
Код
Название: Re: реализация таймера Отправлено: Lora от Январь 20, 2014, 01:36 Этот метод называется "вручную". Не всегда использовать готовые функции, а когда проще - написать свою реализацию. Код
а если не используя ui, то код должен так примерно выглядеть? Код: #include "mainwindow.h" а в том коде, что без ui не выскакивает окошко с надписью, что время вышло( только эта ошибка пишется : Object::connect: Parentheses expected, slot Mustang::getTime in mainwindow.cpp:16 Название: Re: реализация таймера Отправлено: Igors от Январь 20, 2014, 10:35 Код
Код
Название: Re: реализация таймера Отправлено: Figaro от Январь 21, 2014, 13:15 Я бы добавил, ТС надо еще внимательно прочитать "Орфографический словарь русского языка"
|