首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QEventLoop之前已经调用过exec(),即使使用exit()也是如此

QEventLoop之前已经调用过exec(),即使使用exit()也是如此
EN

Stack Overflow用户
提问于 2015-09-29 00:54:40
回答 1查看 1.7K关注 0票数 0

我有一个按钮连接点击与我的功能,见下文。

我使用QEventLoop是因为我在等待一个事件,它将调用_myEventLoop.exit(0);

当我在没有等待事件发生的情况下连续单击按钮两次时,我得到了错误消息:

代码语言:javascript
复制
QEventLoop::exec: instance 0x22f47378 has already called exec()

我在调用exec()之前调用了exit( 1 ),但是这个exit似乎立即返回,然后exec()传递函数,因为它仍在运行return 1,所以myfunction返回,只有第一个exec()返回1。

在继续之前,我如何确保前面对exec()的调用已经返回?

代码语言:javascript
复制
void myfuntion()
{
    _myEventLoop.exit(1);
    if(_myEventLoop.exec() == 0)
    {
        // DoSomething
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-09-29 04:33:38

您可以调用QEventLoop::processEvents来处理任何未决事件。

您的代码如下所示:

代码语言:javascript
复制
void myfuntion()
{
    _myEventLoop.exit(1);
    _myEventLoop.processEvents();

    if(_myEventLoop.exec() == 0)
    {
        // DoSomething
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32828106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档