Название: qt движущиеся объекты Отправлено: qwyllum от Октябрь 13, 2013, 21:42 Доброго времени суток! С-но возник вопрос как в qt сделать движущиеся объекты.
Поскольку опыта в этой теме у меня нет и гугление по теме ничего не дало(может гуглить не умею), то решил для начала поставить элипс в рандомных координатах в paintEvent и обновлять постоянно с помощью repaint. Qt начал ругаться на рекурсию и тогда добавил таймер. Теперь это выглядит вроде: Код: QPainter *p=new QPainter(this); Но я понимаю, что этот способ неправильный, хотя-бы потому, что окно перестало реагировать на нажатие,а это уже не есть круто. Хотелось бы пинка в нужную сторону. По задаче мне необходимо сделать несколько движущихся кругов, отскакивающих от границ экрана. Заранее премного благодарен! Название: Re: qt движущиеся объекты Отправлено: mutineer от Октябрь 13, 2013, 22:14 Ты взводишь таймер и тут же его удаляешь? оригинально...
Название: Re: qt движущиеся объекты Отправлено: qwyllum от Октябрь 13, 2013, 22:35 Ты взводишь таймер и тут же его удаляешь? оригинально... убрал удаление таймера, ничего кардинально не изменилось...Название: Re: qt движущиеся объекты Отправлено: qwyllum от Октябрь 13, 2013, 22:53 Окей, перефразирую вопрос. В общем без привязки к конкретной библиотеке я вижу цикл своей программы так:
do { очистка экрана получение действия пользователя если пользователь нажал кл. Esc - выход отрисовка объектов }while(1) я не понимаю как реализовать чтобы цикл отрисовки постоянно обновлялся для отрисовки движущихся объектов Название: Re: qt движущиеся объекты Отправлено: mutineer от Октябрь 13, 2013, 23:09 Заведи таймер с небольшим интервалом и вызывай перерисовку по его таймауту. Действия пользователя придут через ивенты между срабатываниями таймера
Название: Re: qt движущиеся объекты Отправлено: qwyllum от Октябрь 13, 2013, 23:12 Заведи таймер с небольшим интервалом и вызывай перерисовку по его таймауту. Действия пользователя придут через ивенты между срабатываниями таймера А куда мне всунуть таймер? Я его потому и всовывал в цикл paintEvent что он бесконечный и перерисовка будет повторятся. Если я вставлю таймер, например, в конструктор, он один раз сработает и все. Название: Re: qt движущиеся объекты Отправлено: mutineer от Октябрь 13, 2013, 23:14 http://doc.qt.digia.com/4.7/qtimer.html#singleShot-prop
Название: Re: qt движущиеся объекты Отправлено: qwyllum от Октябрь 14, 2013, 00:37 http://doc.qt.digia.com/4.7/qtimer.html#singleShot-prop Огромное спасибо, все встало на свои места |