gpt4 book ai didi

QT:制作一个在某个时刻暂停一段时间的功能

转载 作者:行者123 更新时间:2023-12-02 07:52:06 26 4
gpt4 key购买 nike

我有一个 QT 问题。我想让我的程序在我定义的地方停止,比方说 3 秒。我做不到。我需要它,因为早些时候我的程序生成了文件,它被我稍后调用的程序使用。问题是,该文件似乎没有足够的时间来创建。我的代码如下所示:

void MainWindow::buttonHandler()
{
QFile ..... (creating a text file);
//Making a stream and writing something to a file
//A place where program should pause for 3 seconds
system("call another.exe"); //Calling another executable, which needs the created text file, but the file doesn`t seem to be created and fully written yet;
}

提前致谢。

最佳答案

一些可能性:

1) 将另一个插槽用于 sleep 后要做的事情:

QTimer::singleShot(3000, this, SLOT(anotherSlot());
...
void MyClass::anotherSlot() {
system(...);
}

2) 没有另一个插槽,使用本地事件循环:

//write file
QEventLoop loop;
QTimer::singleShot(3000, &loop, SLOT(quit()) );
loop.exec();
//do more stuff

我会避免本地事件循环,而更喜欢 1),但是,本地事件循环会导致过多的细微错误(在 loop.exec() 期间,任何事情都可能发生)。

关于QT:制作一个在某个时刻暂停一段时间的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149356/

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