gpt4 book ai didi

c++ - 使用 QEventLoop 调用函数

转载 作者:行者123 更新时间:2023-11-30 03:27:15 25 4
gpt4 key购买 nike

我有两个按钮:播放和暂停。还有我滑动条。

我想按下播放器来改变幻灯片的位置,直到发出一个事件,或者按下暂停键。为此,我正在使用 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 函数....有任何示例或建议吗?

非常感谢!

最佳答案

没有必要为这种情况创建事件循环,只需使用 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();

}

关于c++ - 使用 QEventLoop 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47537262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com