gpt4 book ai didi

c++ - 小部件仅在 for 循环结束时更新。我需要在 for 循环中逐步更新它

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

如何使用下面的“for 循环”来立即更新窗口。 sleep(5)只是看item是否瞬间填满

我在一个简单的“class MainWindow : public QMainWindow”中使用 Qt,它有一个按钮、一个 plainTextEdit 和一个 textEdit

for (int i=0; i < 10 ; i++ )
{
sentFrame = "toto"+i;
ui->alarmSent->addItem(sentFrame.toHex()); // filled at the end of for loop
ui->sentTest->insertPlainText(sentFrame.toHex()); // filled at the end of for loop
sleep(5);
}

最佳答案

您不应该在 GUI 中使用 sleep 方法,因为它会长时间阻塞 GUI 所在的事件循环,解决方法是使用 QTimer::singleShot() + QEventLoop :

for (int i=0; i < 10 ; i++ )
{
sentFrame = "toto"+i;
ui->alarmSent->addItem(sentFrame.toHex());
ui->sentTest->insertPlainText(sentFrame.toHex());
QEventLoop loop;
QTimer::singleShot(5*1000, &loop, &QEventLoop::quit);
loop.exec();
}

关于c++ - 小部件仅在 for 循环结束时更新。我需要在 for 循环中逐步更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731565/

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