Название: рисование на виджите Отправлено: olefard от Ноябрь 08, 2009, 14:40 Рисую на виджите в PainEven, необходимо изобразить динамическое перемещение точки по виджиту, у которой в цикле меняются координаты...Как это организовать..подскажите как использовать таймер или как сделать задержку в цикле, чтобы было видно как рисуется точка????
Название: Re: рисование на виджите Отправлено: lit-uriy от Ноябрь 08, 2009, 14:59 * создай таймер - startTimer ( int interval )
* создай метод-обработчик события таймера - timerEvent(QTimerEvent *event) При создании таймера, запоминай его ID. В обработчике события удали таймер по его ID - void killTimer ( int id ) Далее делай то, что сейчас делаешь в теле цикла. Затем в конце обработчика вызывай repaint() и заново создавай таймер Подробности смотри int QObject::startTimer ( int interval ) Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 08, 2009, 16:27 а по подробнее можно, плиз???
где создавать таймер??? Название: Re: рисование на виджите Отправлено: lit-uriy от Ноябрь 08, 2009, 18:18 >>где создавать таймер???
В своём виджете Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 10, 2009, 08:38 А пример кода можно ...как использовать таймер в моем случае..никогда не доводилось работать с таймером просто
Название: Re: рисование на виджите Отправлено: jasf от Ноябрь 10, 2009, 10:48 - все действия производятся в наследнике класса QObject
Код: int timerId = startTimer(delay); НО после многолетнего опыта программирования, и исходя из того, что вам не приходилось до этого пользоваться таймерами, настоятельно рекомендую пожалеть себя и поберечь своё время, и не просиживать часы жизни на форумах в поисках решения самых базовых проблем, а приобрести какую-нибудь книгу по Qt и выделить неделю времени на её прочтение. При этом, если с первого раза тяжело пойдёт, её можно прочитать 2 раза! :) или 3. тем самым, благодаря инвестиции нескольких недель времени, экономятся годы :) (проверено) Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 10, 2009, 14:42 а как это сделать, не используя таймер???
Название: Re: рисование на виджите Отправлено: SABROG от Ноябрь 10, 2009, 15:48 а как это сделать, не используя таймер??? Используя *sleep + QApplication::processEvents. Название: Re: рисование на виджите Отправлено: Igors от Ноябрь 10, 2009, 16:24 а как это сделать, не используя таймер??? Лучше сделать "используя". Если есть tools которые для этого подходят/предназначены, то искать обходные пути - себе дороже. Тот же sleep - с ним всегда будут проблемы.Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 10, 2009, 16:27 :)да еще бы знать как его использовать и проблем не будет :)
Название: Re: рисование на виджите Отправлено: jasf от Ноябрь 10, 2009, 17:26 2olefard: да блин подробная работа с эвентами (включительно таймеров) описана в 6стой главе книги http://www.books.ru/shop/books/588549 (http://www.books.ru/shop/books/588549). А так же там описано всё остальное, что может пригодиться при разработке приложений под Qt.
P.S. надеюсь за прямую ссылку на чужой ресурс не получу бан.. Название: Re: рисование на виджите Отправлено: Igors от Ноябрь 10, 2009, 18:04 :)да еще бы знать как его использовать и проблем не будет :) Ну вот Вы со своим другом взяли маленькую (0.5) и мучительно думаете: ну КАК же ее использовать?? :) Да просто наливать и пить - то же и с таймерами.Название: Re: рисование на виджите Отправлено: lit-uriy от Ноябрь 10, 2009, 18:08 >>Да просто наливать и пить - то же и с таймерами.
+1 (другими словами: напиши простейшую программу, пусть в консоль что-нибудь по таймеру печатает) Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 10, 2009, 20:11 вот пытаюсь сделать рисование по таймеру
Код: MyProb::MyProb(QWidget *parent) Где ошибка??? Название: Re: рисование на виджите Отправлено: lit-uriy от Ноябрь 11, 2009, 04:14 Рисование возможно только в методе paintEvent, перенеси код из void MyProb::MyDraw() туда.
А в timerEvent вызывай repaint() Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 11, 2009, 07:50 что -то не получается линия отрисовывается вся сразу
Название: Re: рисование на виджите Отправлено: olefard от Ноябрь 11, 2009, 07:50 точнее она вообще не рисуется
|