Russian Qt Forum
Ноябрь 01, 2024, 02:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Остановка таймера QTimer  (Прочитано 8494 раз)
bekor
Гость
« : Март 02, 2012, 18:37 »

Привет,
подскажите пожалуйста как надо остановить таймер
Код:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
[...]
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(100);
}
таймер запускается и нормально работает но когда я пытаюсь остановить
его в обработчике нажатия кнопки путем вызова
Код:
timer->stop();
то выплевывает ошибку типа "timer not declared in this scope"

попробовал так
Код:
MainWindow::timer->stop();
все равно не помогает Злой

что я делаю неправильно?
Записан
mutineer
Гость
« Ответ #1 : Март 02, 2012, 18:42 »

Указатель на таймер существует только в конструкторе
Записан
V1KT0P
Гость
« Ответ #2 : Март 02, 2012, 18:43 »

таймер запускается и нормально работает но когда я пытаюсь остановить
его в обработчике нажатия кнопки путем вызова
Код:
timer->stop();
то выплевывает ошибку типа "timer not declared in this scope"
А ты попробуй не напрямую вызывать а через сигнал.
Записан
lolbla2
Гость
« Ответ #3 : Март 02, 2012, 18:43 »

Привет,
подскажите пожалуйста как надо остановить таймер
Код:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
[...]
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(100);
}
таймер запускается и нормально работает но когда я пытаюсь остановить


его в обработчике нажатия кнопки путем вызова
Код:
timer->stop();
то выплевывает ошибку типа "timer not declared in this scope"

попробовал так
Код:
MainWindow::timer->stop();
все равно не помогает Злой

что я делаю неправильно?

потому что ты таймер создаёшь в конструкторе а потом видимо он уничтожается, попробуй указатель  на таймер засунуть в класс формы а уже потом в конструкторе выдели под него память
Записан
bekor
Гость
« Ответ #4 : Март 02, 2012, 21:08 »

Если можно напишите это в виде кода как мне надо писать, а то что то не совсем соображаю,
В QT недавно начал разобратся.
Записан
V1KT0P
Гость
« Ответ #5 : Март 02, 2012, 21:31 »

Если можно напишите это в виде кода как мне надо писать, а то что то не совсем соображаю,
В QT недавно начал разобратся.
Вот так например: http://rghost.ru/36814408
Записан
bekor
Гость
« Ответ #6 : Март 02, 2012, 22:00 »

V1KT0P большое спасибо Улыбающийся
теперь понятно стало.
Записан
mutineer
Гость
« Ответ #7 : Март 02, 2012, 23:14 »

Если можно напишите это в виде кода как мне надо писать, а то что то не совсем соображаю,
В QT недавно начал разобратся.
Прежде чем разбираться в Qt, разберись сначала в С++
Записан
Bepec
Гость
« Ответ #8 : Март 03, 2012, 11:02 »

mutineer ты конечно прав, но...

Разбираться именно я начал с C, далее через месяц Qt, сейчас уже Qt нехватает, изучаю С++ Подмигивающий
Записан
mutineer
Гость
« Ответ #9 : Март 03, 2012, 11:23 »

mutineer ты конечно прав, но...

Разбираться именно я начал с C, далее через месяц Qt, сейчас уже Qt нехватает, изучаю С++ Подмигивающий

То есть на Qt ты писал не имея вообще никакого понятия про ООП?
Записан
BRE
Гость
« Ответ #10 : Март 03, 2012, 11:28 »

То есть на Qt ты писал не имея вообще никакого понятия про ООП?
Почему "писал", он и сейчас пишет. Улыбающийся
Записан
Bepec
Гость
« Ответ #11 : Март 03, 2012, 11:41 »

mutineer - ты прав. Я начинал освоение ООП, переходя с С на С++(библиотеки Qt).

И было трудноватенько Подмигивающий

PS BRE [агр] [агр]
Записан
mutineer
Гость
« Ответ #12 : Март 03, 2012, 11:43 »

mutineer - ты прав. Я начинал освоение ООП, переходя с С на С++(библиотеки Qt).

И было трудноватенько Подмигивающий

PS BRE [агр] [агр]

Сочувствую...
Записан
sudo
Гость
« Ответ #13 : Март 05, 2012, 10:40 »

потому что ты таймер создаёшь в конструкторе а потом видимо он уничтожается, попробуй указатель  на таймер засунуть в класс формы а уже потом в конструкторе выдели под него память

Куда ж он уничтожится, если создан на куче? Удалиться он может, если удалится родитель или будет вызвано удаление, а так просто нет на него указателя

ТС, придётся делать поле класса с таймером
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.132 секунд. Запросов: 20.