我有两个按钮:播放和暂停。我滑过杆。
我想按下播放器,以改变幻灯片的位置,直到发布事件,或按下暂停按钮。出于这个原因,我使用QEventLoop。
void MainWindow::slider()
{
for(min_value = ui->horizontalSlide->value(); min_value <= max_value; min_value++){
//msleep(2000);
ui->horizontalSlide->setValue(min_value);
}
}
void MainWindow::on_playButton_clicked()
{
QEventLoop loop2;
QObject::connect(this, SIGNAL(quitLoop()), &loop2... ?);
loop2.exec();
}
void MainWindow::on_pauseButton_clicked()
{
emit quitLoop();
}但我不知道如何将QEventLoop连接到on_playButton_clicked函数.有什么例子或建议吗?
非常感谢!
发布于 2017-11-28 17:25:35
没有必要为这种情况创建eventLoop,只需使用QTimer:
*.h
private:
QTimer *timer .cpp
MainWindow::MainWindow(QWidget *parent)
:QMainWindow(parent)
{
[...]
timer = new QTimer(this);
connect(timer, &QTimer::timeout, [this](){
int value = ui->horizontalSlide->value();
ui->horizontalSlide->setValue(value+1);
if(ui->horizontalSlide->value() == ui->horizontalSlide->maximum())
timer->stop();
});
}
void MainWindow::on_playButton_clicked(){
timer->start(2000);
}
void MainWindow::on_pauseButton_clicked()
{
timer->stop();
}https://stackoverflow.com/questions/47537262
复制相似问题