Qt C++ воспроизведение и остановка слайдера

216
23 декабря 2017, 05:46

У меня есть две кнопки (Старт и стоп) и слайдер. Старт, соответственно, начинает воспроизведение, а стоп должна останавливать.

Написал код для кнопки старта:

for (int i = 1; i <= 1000; i++) {
        slider->setValue(i);
        slider->repaint();
        usleep(1000000);
}

Но я не знаю, как его теперь всё то дело остановить :( Подскажите, пожалуйста, буду крайне благодарен.

Answer 1

Как верно предложил @Fat-Zer, неплохим решением будет использовать QTimer.

start = new QPushButton("->");
connect(start, SIGNAL(clicked()), this, SLOT(start_btn()));
stop = new QPushButton("||");
stop->hide();
connect(stop, SIGNAL(clicked()), this, SLOT(stop_btn()));
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
void start_btn() {
    start->hide();
    stop->show();
    timer->start();
}
void stop_btn() {
    stop->hide();
    start->show();
    timer->stop();
}
void update() {
    slider->setValue(slider->value() + 1);
    slider->repaint();
}
READ ALSO
java.lang.IllegalStateException при выполнении setPixel

java.lang.IllegalStateException при выполнении setPixel

Считываю изображение из галереи, далее помещаю его в ImageView, все корректноОднако, когда я пытаюсь изменить пиксель, то получаю данную ошибку

220
Внутренние и вложенные классы

Внутренние и вложенные классы

Внутренние и вложенные классы — это не одно и тоже

201
Вопрос про исключения

Вопрос про исключения

Недавно начал изучать Java под AndroidКак я понял, исключения нужно брать в блок try and catch

179