Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
handkock
4 / 2 / 1
Регистрация: 15.10.2013
Сообщений: 94
1

Таймер

28.03.2014, 22:16. Просмотров 571. Ответов 3
Метки нет (Все метки)

Являюсь новичком в программировании. Работаю над игрушкой, там некоторый код был написан без меня и не не очень понятен.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    k=0;
     x0=150;
     y0=0;
    QTimer *timer=new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(update()));
    timer->start(1);
 
 
}
Не очень понятен этот конструктор. Просто хочу понять как работает этот таймер. Он используется в
C++ (Qt)
1
2
3
4
5
6
7
8
void MainWindow:: update()
{
    if(k==0)  y0++;
    if(k==1)  x0++;
    if(k==-1) y0--;
    if(k==-2) x0--;
   repaint();
}
Перерисовывает картинку с другими координатами за какое-то время. Мне требуется сделать такое ещё раз только для другого класса, поэтому требуется помощь. Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 22:16
Ответы с готовыми решениями:

Таймер
как приостановить программу на определенное время, например 0,1 секунды

Таймер на Qt
Привет всем, ребят. Возникла такая идея, хочу реализовать таймер на Qt. Рабочий...

Таймер
Помогите пожалуйста!!! Не работает таймер, а также не могу правильно сделать,...

Интерфейс и таймер
Здравствуйте, подскажите, как реализовать выполнение функций каждый...

Таймер не останавливается
У меня игра Быки и Коровы И при запуске новой игры запускается таймер, и...

3
Чистый
Автор FAQ
2714 / 1410 / 89
Регистрация: 08.09.2011
Сообщений: 3,741
Записей в блоге: 1
28.03.2014, 22:30 2
через каждую миллисекунду отрабатывает слот update в котором в зависимости состояния переменной k изменяем x0 или y0 в большу или меньшую сторону и выполняется функция repaint. но это глуповатый ход, особенно период срабатывания таймера.
1
handkock
4 / 2 / 1
Регистрация: 15.10.2013
Сообщений: 94
28.03.2014, 22:46  [ТС] 3
Чистый, Про update ясно полностью, и что он делает, я имею ввиду саму структуру
C++ (Qt)
1
2
 QMainWindow(parent),
    ui(new Ui::MainWindow)
и
C++ (Qt)
1
ui->setupUi(this);
с
C++ (Qt)
1
2
3
QTimer *timer=new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(update()));
    timer->start(1);
Не могли бы Вы подробно объяснить ?
0
Чистый
Автор FAQ
2714 / 1410 / 89
Регистрация: 08.09.2011
Сообщений: 3,741
Записей в блоге: 1
29.03.2014, 01:21 4
тут уж вам в праве взят учебник по С++ 1,2 это инициализация указателя через который вы в дальнейшем сможете обращаться к объектам размещенным на форме, которая в свою очередь была "нарисована" в дизайнере. срока ui->setupUi(this); идет туда же куда и первые две, все это приблуды которые позволяют вам работать с виджетами распаложенными на форме др словами setupUi создает экземпляры виджетов для того что бы вы к ним могли обращатся из кода, все это из области UIC.
ну а последние 3 строки все просто, создается экземпляр класса QTimer после чего идет соединения сигнала со слотом, про сигналы и слоты вам лучше почитать отдельно и как можно подробнее, без них в Qt будет очень туго. ну и после соединения запускается таймер.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2014, 01:21

Остановить таймер
вопрос как можно остановить таймер если я использую qtime он меня всем...

Не срабатывает таймер в QT
1.Пытаюсь привязать слот к таймеру QTimer timer; QObject::connect(&timer,...

ProgressBar и таймер
всем доброго времени суток! не знаю существует ли такая тема , но тем не менее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru